Это очень странная проблема …
ОС: Windows 10
Конверт: Убунту Баш
Nginx: nginx / 1.10.3 (Ubuntu)
PHP: PHP 7.2.1-1 + ubuntu16.04.1 + deb.sury.org + 1
Когда я делаю тестирование непосредственно в PHP-FPM из CLI, ответ просто отлично.
лайк…
SCRIPT_NAME = / status SCRIPT_FILENAME = / status REQUEST_METHOD = GET
cgi-fcgi -bind -connect /run/php/php7.2-fpm.sock
подключиться к этой системе статуса https://easyengine.io/tutorials/php/fpm-status-page/
При запуске Nginx выдает эти ошибки в журнале
2018/06/24 15:08:45 [alert] 6772 # 6772: * 2 разъема № 15 оставлен в соединении 4
2016/06/24 15:08:45 [оповещение] 6772 # 6772: прерывание
Но если я подключусь к http://127.0.0.1/status
чтобы проверить его (или любой локальный URL) … запрос зависает до 502. только с этими заголовками:
Подключение: keep-alive
Контент-кодировка: gzip
Content-Type: text / html; кодировка = UTF-8
Дата: вс, 24 июня 2018 22:17:13 GMT
Сервер: nginx / 1.10.3 (Ubuntu)
Передача-кодировка: чанки
и эта ошибка показывает в журнале nginx
2018/06/24 15:09:48 [ошибка] 6834 # 6834: * истекло время ожидания восходящего потока (110:
Время соединения истекло) при чтении в восходящем направлении, клиент: 127.0.0.1,
сервер: _, запрос: «GET / status HTTP / 1.1», восходящий поток:
«fastcgi: // unix: /run/php/php7.2-fpm.sock:», хост: «127.0.0.1»
Но если я убью службу PHP-FPM, пока она зависает, то ответ отлично отображается в браузере. Точно так же, как это делает прямой запрос CLI.
Остальная часть конфигурации nginx является настройками по умолчанию. Я использую sock для fpm, а не ip: port. Настройка ip: port не будет работать даже с целым рядом других проблем.
Очевидно, что FPM работает правильно … но по какой-то причине Nginx определенно не может определить, когда ответ завершил отправку, и Nginx просто зависает, ожидая, пока он не будет считаться завершенным, что никогда не происходит … поэтому страница не работает. Я обыскивал каждое полу-похожее решение, которое я могу найти в Интернете, и ничто не похоже на мою проблему; и их методы не работают для меня.
есть идеи? Спасибо!
Я исправил это, добавив следующее в http-блок в /etc/nginx/nginx.conf:
fastcgi_buffering off;
Других решений пока нет …