После 6 часов отладки - я отказываюсь от этого: |
У нас есть nginx + php-fpm + mysql в локальной сети с почти 100 WordPress (созданный и используемый разными дизайнерами / разработчиками, работающими над тестовой настройкой WordPres).
Мы используем nginx без каких-либо проблем.
Сегодня, неожиданно, nginx начал возвращать "504 Gateway Time-out" на ровном месте ...
Я проверил журнал ошибок nginx для виртуального хоста ...
2010/09/06 21:24:24 [error] 12909#0: *349 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 21:25:11 [error] 12909#0: *349 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 21:25:11 [error] 12909#0: *443 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /info.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 21:25:12 [error] 12909#0: *443 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 22:08:32 [error] 12909#0: *1025 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 22:09:33 [error] 12909#0: *1025 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 22:09:40 [error] 12909#0: *1064 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /info.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 22:09:40 [error] 12909#0: *1064 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 22:24:44 [error] 12909#0: *1313 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 22:24:53 [error] 12909#0: *1313 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
Когда я запускал php-fpm на порту 9000 через режим TCP, я запускал «netstat | grep 9000» и заметил что-то необычное ... (здесь для частичного чтения вставлен частичный вывод)
tcp 9 0 localhost:9000 localhost:36094 CLOSE_WAIT 14269/php5-fpm
tcp 0 0 localhost:46664 localhost:9000 FIN_WAIT2 -
tcp 1257 0 localhost:9000 localhost:36135 CLOSE_WAIT -
tcp 1257 0 localhost:9000 localhost:36125 CLOSE_WAIT -
tcp 9 0 localhost:9000 localhost:36102 CLOSE_WAIT 14268/php5-fpm
tcp 0 0 localhost:46662 localhost:9000 FIN_WAIT2 -
tcp 745 0 localhost:9000 localhost:46644 CLOSE_WAIT -
tcp 0 0 localhost:46658 localhost:9000 FIN_WAIT2 -
tcp 1265 0 localhost:9000 localhost:46607 CLOSE_WAIT -
tcp 0 0 localhost:46672 localhost:9000 ESTABLISHED 12909/nginx: worker
tcp 1257 0 localhost:9000 localhost:36119 CLOSE_WAIT -
tcp 1265 0 localhost:9000 localhost:46613 CLOSE_WAIT -
tcp 0 0 localhost:46646 localhost:9000 FIN_WAIT2 -
tcp 1257 0 localhost:9000 localhost:36137 CLOSE_WAIT -
tcp 0 0 localhost:46670 localhost:9000 ESTABLISHED 12909/nginx: worker
tcp 1265 0 localhost:9000 localhost:46619 CLOSE_WAIT -
tcp 1336 0 localhost:9000 localhost:46668 ESTABLISHED -
tcp 0 0 localhost:46648 localhost:9000 FIN_WAIT2 -
tcp 1336 0 localhost:9000 localhost:46670 ESTABLISHED -
tcp 9 0 localhost:9000 localhost:36108 CLOSE_WAIT 14274/php5-fpm
tcp 1336 0 localhost:9000 localhost:46684 ESTABLISHED -
tcp 0 0 localhost:46674 localhost:9000 ESTABLISHED 12909/nginx: worker
tcp 1336 0 localhost:9000 localhost:46666 ESTABLISHED -
tcp 1257 0 localhost:9000 localhost:46648 CLOSE_WAIT -
tcp 1336 0 localhost:9000 localhost:46678 ESTABLISHED -
tcp 0 0 localhost:46668 localhost:9000 ESTABLISHED 12909/nginx: wo
Существует множество пар "CLOSE_WAIT" и "FIN_WAIT2", как показано ниже (в выводе выше):
tcp 1337 0 localhost:9000 localhost:46680 CLOSE_WAIT -
tcp 0 0 localhost:46680 localhost:9000 FIN_WAIT2 -
Обратите внимание на порт 46680 выше.
Я включил журнал ошибок медленных запросов mysql, но он не работал.
На данный момент перезапуск php5-fpm каждую минуту через cronjob (см. Команду ниже), чтобы все работало "гладко", но я ненавижу лоскутное одеяло и хочу решить эту проблему ...
1 * * * * service php5-fpm restart > /dev/null
Я много искал в Google - мне не помогли. Как уже упоминалось, это тест-сервер в локальной сети, загрузка ЦП никогда не пересекается 0,10, а использование памяти также ниже 25% (в системе установлено 2 ГБ ОЗУ и установлен Ubuntu-сервер). Так что, если вы считаете, что выручает мое время, выручите меня, пожалуйста, по крайней мере дайте намек.
Заранее спасибо за помощь.
-Rahul
(обратите внимание - это репост - http://forum.nginx.org/read.php?11,127694 )
Обновление: я нашел ответ, который размещен ниже.
[global]
раздел php-fpm.conf . Он работает там только в том случае, если у вас там есть настройки вашего пула. Также: request_terminate_timeout docs .request_terminate_timeout=30s
в мойphp-fpm.conf
файл вызвало ошибку (111 Connection Refused). Когда я переместил это в мойwww.conf
файл, это работало.Вот как это решило мою проблему:
внести следующие изменения в /etc/nginx/nginx.conf в http {section
а затем перезапустите nginx
/etc/init.d/nginx restart
источник
Если вы используете php 5.3, увеличьте отставание.
Если вы используете php 5.2, сделайте бэкпорт патча, чтобы увеличить размер журнала с 128.
Кроме того, используйте сокет Unix, а не сокет TCP. unix: /tmp/php5-cgi.sock (или соответствующий путь)
источник
Большое спасибо
request_terminate_timeout = 30s
У меня отлично работает
но я должен был вставить строку в этом файле: "/etc/php5/fpm/pool.d/www.conf", то есть в разделе "Worker".
PHP 5.3.21-1 - Wordpress 3.5.1
http://php-fpm.org/wiki/Configuration_File
источник
в моем случае (то же самое сообщение об ошибке nginx) некоторые проблемные сценарии php не заканчиваются для выполнения и ожидают чего-то, что приводит к тому, что больше нет дочерних элементов php5-fpm для выбора nginx.
исправить:
request_terminate_timeout=30s
pm.max_spare_servers=16
pm.min_spare_servers=2
теперь все работает как шарм.
источник
У меня была та же проблема, и я решил ее, полностью удалив Apache:
После этого я рекомендую перезапустить PHP и NGINX:
источник
Для меня такая же проблема произошла после удаления rabbitmq с сервера. Ничто из вышеперечисленного не было бесполезным, переустановка всех модулей php5 решила проблему. У меня был Debian 8.2 на этом сервере. Надеюсь, будет полезно для кого-то.
источник
Это также может помочь людям:
В зависимости от ваших настроек, вы должны посмотреть параметры конфигурации fastcgi, а также php ... в моем случае (я использую apache2 + php5-fpm), а время max_execution также зависит от того, как долго модуль fastcgi ожидает ответа ( тайм-аут) ...
http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html#FastCgiExternalServer
источник