Анализ логов ошибок Nginx для устранения неполадок «connection refused»

Узнайте о лучших практиках интерпретации логов ошибок Nginx для выявления первопричин проблем «connection refused», включая настройки сокетов и проверку апстрим-серверов.

Введение

Ошибка connection refused в Nginx — одна из самых распространенных проблем, с которыми сталкиваются системные администраторы. Она означает, что Nginx не смог установить соединение с целевым сервером (апстримом).

Анализ логов

Первым делом проверьте файл error.log. Обычно он находится в /var/log/nginx/error.log.

Ищите записи вида:

[error] 12345#0: *1 connect() failed (111: Connection refused) while connecting to upstream

Что это значит?

  1. Целевой порт закрыт: Приложение, к которому пытается подключиться Nginx, не запущено или слушает другой порт.
  2. Проблемы с брандмауэром: iptables или ufw блокируют соединение.
  3. Неверный IP-адрес: Nginx пытается подключиться к неверному адресу (например, 127.0.0.1 вместо localhost или наоборот).

Шаги по устранению

  1. Проверьте статус службы: Убедитесь, что ваш бэкенд (например, PHP-FPM, Node.js или Python) запущен.
  2. Проверьте порт: Используйте команду netstat или ss:
    sudo ss -tulpn | grep LISTEN
    
  3. Проверьте конфигурацию апстрима: Убедитесь, что в блоке upstream или proxy_pass указан правильный порт.

Следуя этим шагам, вы сможете быстро локализовать и устранить причину ошибки.