Это очень странная проблема ...
ОС: Windows 10
Конверт: Ubuntu Bash
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
2018/06/24 15:08:45 [alert] 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: * Тайм-аут 1 восходящего потока (110:
Время соединения истекло) при чтении в восходящем направлении, клиент: 127.0.0.1,
сервер: _, запрос: "GET / статус 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 просто зависает, ожидая, пока его не завершат, что никогда не происходит ... так что ошибки страницы. Я обыскивал каждое полу-похожее решение, которое я могу найти в Интернете, и ничто не похоже на мою проблему; и их методы не работают для меня.
есть идеи? Спасибо!