У меня есть 2 сервера nginx и 4 выделенных сервера php-fpm, настроенных в upstream для выполнения PHP с 2 экземплярами на каждом, то есть в upstream я выделил 8 экземпляров с портами 9000 и 9001 для каждого сервера php-fpm.
Иногда случается так, что nginx не может подключиться к php-fpm через порты 9000 и 9001, и даже когда я подключаюсь по telnet из nginx к серверу php-fpm через порт 9000 или 9001, он не подключается.
Какой тип журнала следует включить в nginx и php-fpm, чтобы определить, связана ли проблема с сетевым подключением или с сервером.
Любая помощь будет высоко оценена.
Спасибо
решение1
Возможно, что php-fpm прослушивает только 127.0.0.1 en и не принимает соединения с других серверов. В таком случае вам следует запустить (как root) «netstat -tulnp» и посмотреть, какой порт/адрес прослушивает php-fpm.
решение2
Из комментариев мне на ум приходят четыре вещи.
- Маршрутизация - это два узла в сети, которые позволяют ей подключаться друг к другу. Используйте сетевой инструмент, такой как traceroute, arp, arping, чтобы проверить это (arp, чтобы убедиться, что узел тот же).
- Есть ли между ними брандмауэр или политика безопасности, которая блокирует указанные порты?
- Работает ли ваш сервер под управлением RHEL/CentOS/Fedora или любой другой версии, которая включает SELinux? Если да, вы можете отключить это и попробовать. Следующие команды дадут вам статус SElinux и сделают его разрешительным, если вы этого хотите. Проверьте статус SElinux:
getenforce
ИЛИsestatus | grep -i mode
. Сделайте его разрешительным, если он обеспечивает:setenforce 0
. Проверьте статус еще раз:getenforce
. - проверьте оба сервера на наличие IPtables.
iptables -nL
выведет список, включен ли iptables и разрешает ли эти порты. Вы можете сделать следующее, чтобы сохранить текущие правила, очистить их и остановить iptables на время./etc/init.d/iptables сохранить
iptables -F
/etc/init.d/iptables остановить
решение3
Когда это происходит, php-fpm может исчерпать дочерние процессы, проверьте журналы пула на наличие ошибок. Обычно это происходит, если у вас есть долго работающие PHP-запросы в среде с высоким трафиком.