AH01079: не удалось установить соединение с бэкендом: localhost

Вопрос или проблема

Мне нужна и я был бы признателен за ваш добрый совет по исправлению указанной серверной ошибки, с которой я безуспешно боролся в течение нескольких недель.

У меня есть 2 вебсайта, созданных на платформе Google Cloud Computing, которые работали в течение 2 лет, пока я недавно не обновил и не усовершенствовал их следующим образом;

DNS-сервер зарегистрирован в Cloudflare с установленными IP-адресами без прокси.

Сервера на GCP активны и работают, кроме bind9, который не найден, iptables выключен, но ufw включен.

Конфигурация сервера:
Hestia CP 1.8.12 | Ubuntu 22.04.5 LTS (GNU/Linux 6.8.0-1015-gcp x86_64) | Apache 2.4.62 | mod_fcgid 2.3.9 | OpenSSL/3.0.2 | Nginx/1.27.1

Сообщение об ошибке в /var/log/apache2/error.log:
[proxy:error] [pid 245749:tid 245776] (2)No such file or directory: AH02454: FCGI: попытка подключения к Unix-доменному сокету /run/php/php7.3-fpm.sock (localhost:8000) не удалась

[proxy_fcgi:error] [pid 245749:tid 245776] [client 185.191.126.213:0] AH01079: не удалось установить соединение с бэкендом: localhost

Сообщение об ошибке в /home/kelliec/web/example.com/logs/example.com.net.error.log:
[error] 682075#682075: *6323 SSL_do_handshake() не удалась (SSL: ошибка:0A00010B:SSL routines::неверный номер версии) при SSL-рукопожатии с upstream

Статус ufw:
8080 ALLOW Anywhere
Apache Full ALLOW Anywhere
8080 (v6) ALLOW Anywhere (v6)
Apache Full (v6) ALLOW Anywhere (v6)

Тест openssl:
Код возврата проверки: 0 (все в порядке)

Тест соединения с включенным ufw
curl -I http://localhost/
curl: (7) Не удалось подключиться к localhost порт 80 после 0 мс: Соединение отклонено

curl -I http://xx.xxx.x.x
HTTP/1.1 503 Служба недоступна
Сервер: nginx
Дата: Ср, 02 окт 2024 12:25:08 GMT
Тип содержимого: text/html; charset=iso-8859-1
Соединение: keep-alive

telnet example.com 8080 (или 8443)
Попытка xx.xxx.xx.xx…
telnet: Не удалось подключиться к удаленному хосту: Время соединения истекло

netstat -tlpn | grep LISTEN

tcp 0 0.0.0.0:8083 0.0.0.0:* LISTEN 2118740/nginx: mast
tcp 0 0.xx.xx.x.x:443 0.0.0.0:* LISTEN 2121968/nginx: mast
tcp 0 0.xx.xx.x.x:80 0.0.0.0:* LISTEN 2121968/nginx: mast
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 2121481/php-fpm: m
tcp6 0 0 :::8080 :::* LISTEN 2122701/apache2
tcp6 0 0 :::8443 :::* LISTEN 2122701/apache2

Тесты конфигурации
apachectl -t
Синтаксис ОК

nginx -t
nginx: файл конфигурации /etc/nginx/nginx.conf имеет корректный синтаксис
nginx: тест конфигурации файла /etc/nginx/nginx.conf успешен

Проверка прав
ls -ld /run/php
drwxr-xr-x 2 www-data www-data 220 Окт 2 07:27 /run/php/

Есть идеи?

Большое спасибо,
Сэм

Ответ или решение

Здравствуйте, Сам!

Я понимаю вашу ситуацию и постараюсь помочь вам разобраться с проблемой соединения с бэкендом. Судя по приведенной информации, есть несколько аспектов, которые необходимо проверить и настроить.

  1. Unix Domain Socket:
    Ваша ошибка связана с тем, что Apache не может подключиться к Unix-сокету PHP-FPM, который указан в конфигурации. Похоже, что конфигурация ожидает сокет /run/php/php7.3-fpm.sock, который явно отсутствует, что вызывает ошибку "No such file or directory".

    • Убедитесь, что PHP-FPM работает и настроен правильно. Проверьте файл конфигурации PHP-FPM (обычно находится в /etc/php/7.3/fpm/pool.d/www.conf):
      listen = /run/php/php7.3-fpm.sock
    • Если сокет правильно указан, перезапустите PHP-FPM:
      sudo systemctl restart php7.3-fpm
    • Убедитесь, что сокет создан и доступен:
      ls -l /run/php/
  2. Проблемы с Nginx:
    У вас указано, что Nginx возвращает статус 503. Это может быть связано с неправильной обработкой запросов к PHP-FPM. Убедитесь, что Nginx правильно настроен, чтобы проксировать запросы к PHP-FPM через сокет.

    В конфигурации Nginx должна быть секция, которая направляет запросы к PHP:

    location ~ \.php$ {
       include snippets/fastcgi-php.conf;
       fastcgi_pass unix:/run/php/php7.3-fpm.sock;
    }
  3. Проверка UFW:
    Убедитесь, что ваш файрволл настроен правильно, хотя, судя по вашим правилам, порты 8080 и 8443 открыты. Проверьте, что нет конфликтующих правил, которые могут блокировать трафик.

  4. Проверка соединения по локальному адресу:
    Ошибка curl: (7) Failed to connect to localhost port 80 показывает, что Apache не слушает на порту 80. Убедитесь, что Apache работает:

    sudo systemctl status apache2

    Если Apache не запущен, попробуйте его перезапустить:

    sudo systemctl restart apache2
  5. SSL и Handshake ошибки:
    Ошибка SSL_do_handshake() failed указывает на проблемы с конфигурацией SSL. Убедитесь, что сертификаты действительны и правильно настроены в конфигурации Nginx и Apache.

  6. Общая диагностика:
    Если после выполнения всех этих шагов проблема сохраняется, выполните следующие шаги диагностики:

    • Проверьте логи PHP-FPM, чтобы узнать, нет ли других ошибок:
      cat /var/log/php7.3-fpm.log
    • Убедитесь, что всё обновлено до последних рекомендуемых версий.

Следуйте вышеизложенным рекомендациям, и это должно помочь вам устранить проблему с соединением между вашим сервером Apache и PHP-FPM. Если у вас есть дополнительные вопросы или нужна дальнейшая помощь, пожалуйста, дайте знать.

С уважением,

Ваш помощник по вопросам серверного администрирования.

Оцените материал
Добавить комментарий

Капча загружается...