Windows Bash NGINX не завершает успешное действие PHP-FPM - PullRequest
0 голосов
/ 25 июня 2018

Это очень странная проблема ...

ОС: 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 просто зависает, ожидая, пока его не завершат, что никогда не происходит ... так что ошибки страницы. Я обыскивал каждое полу-похожее решение, которое я могу найти в Интернете, и ничто не похоже на мою проблему; и их методы не работают для меня.

есть идеи? Спасибо!

1 Ответ

0 голосов
/ 10 июля 2018

Я исправил это, добавив следующее в http-блок в /etc/nginx/nginx.conf:

fastcgi_buffering off;
...