Вопрос или проблема
Мне нужна и я был бы признателен за ваш добрый совет по исправлению указанной серверной ошибки, с которой я безуспешно боролся в течение нескольких недель.
У меня есть 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/
Есть идеи?
Большое спасибо,
Сэм
Ответ или решение
Здравствуйте, Сам!
Я понимаю вашу ситуацию и постараюсь помочь вам разобраться с проблемой соединения с бэкендом. Судя по приведенной информации, есть несколько аспектов, которые необходимо проверить и настроить.
-
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/
- Убедитесь, что PHP-FPM работает и настроен правильно. Проверьте файл конфигурации PHP-FPM (обычно находится в
-
Проблемы с 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; }
-
Проверка UFW:
Убедитесь, что ваш файрволл настроен правильно, хотя, судя по вашим правилам, порты 8080 и 8443 открыты. Проверьте, что нет конфликтующих правил, которые могут блокировать трафик. -
Проверка соединения по локальному адресу:
Ошибкаcurl: (7) Failed to connect to localhost port 80
показывает, что Apache не слушает на порту 80. Убедитесь, что Apache работает:sudo systemctl status apache2
Если Apache не запущен, попробуйте его перезапустить:
sudo systemctl restart apache2
-
SSL и Handshake ошибки:
ОшибкаSSL_do_handshake() failed
указывает на проблемы с конфигурацией SSL. Убедитесь, что сертификаты действительны и правильно настроены в конфигурации Nginx и Apache. -
Общая диагностика:
Если после выполнения всех этих шагов проблема сохраняется, выполните следующие шаги диагностики:- Проверьте логи PHP-FPM, чтобы узнать, нет ли других ошибок:
cat /var/log/php7.3-fpm.log
- Убедитесь, что всё обновлено до последних рекомендуемых версий.
- Проверьте логи PHP-FPM, чтобы узнать, нет ли других ошибок:
Следуйте вышеизложенным рекомендациям, и это должно помочь вам устранить проблему с соединением между вашим сервером Apache и PHP-FPM. Если у вас есть дополнительные вопросы или нужна дальнейшая помощь, пожалуйста, дайте знать.
С уважением,
Ваш помощник по вопросам серверного администрирования.