Это все, что я пришел к пониманию об этой ошибке в последние 2 года:
upstream sent too big header while reading response header from upstream
является универсальным способом Nginx сказать «мне не нравится то, что я вижу»
- вышестоящая нить сервера упала
- вышестоящий сервер послал неверный заголовок назад
- Уведомления/предупреждение, посланный от STDERR нарушила буфер А как он, так и STDOUT были закрыты
3: Посмотрите на журналы ошибок над сообщением, транслируется ли строка, предшествующая сообщению? PHP message: PHP Notice: Undefined index:
Пример фрагмента из петли мой лог-файл:
2015/11/23 10:30:02 [error] 32451#0: *580927 FastCGI sent in stderr: "PHP message: PHP Notice: Undefined index: Firstname in /srv/www/classes/data_convert.php on line 1090
PHP message: PHP Notice: Undefined index: Lastname in /srv/www/classes/data_convert.php on line 1090
... // 20 lines of same
PHP message: PHP Notice: Undefined index: Firstname in /srv/www/classes/data_convert.php on line 1090
PHP message: PHP Notice: Undefined index: Lastname in /srv/www/classes/data_convert.php on line 1090
PHP message: PHP Notice:
2015/11/23 10:30:02 [error] 32451#0: *580927 FastCGI sent in stderr: "ta_convert.php on line 1090
PHP message: PHP Notice: Undefined index: Firstname
вы можете увидеть в 3-й линии (от 20 предыдущих ошибок) предел буфера был подбит, сломался, и следующий поток написал над ним. Затем Nginx закрыл соединение и вернул 502 клиенту.
2: зарегистрируйте все заголовки, отправленные по запросу, просмотрите их и убедитесь, что они соответствуют стандартам (nginx не разрешает что-либо старше 24 часов для удаления/истечения срока действия cookie, отправляя недопустимую длину содержимого, поскольку сообщения об ошибках буферизуются до содержание подсчитывается ...)
примеров включают в себя:
<?php
//expire cookie
setcookie ('bookmark', '', strtotime('2012-01-01 00:00:00'));
// nginx will refuse this header response, too far past to accept
....
?>
и это:
<?php
header('Content-type: image/jpg');
?>
<?php //a space was injected into the output above this line
header('Content-length: ' . filesize('image.jpg'));
echo file_get_contents('image.jpg');
// error! the response is now 1-byte longer than header!!
?>
1: проверить, или сделать журнал сценария, чтобы обеспечить ваш поток достигает правильную конечную точку и не выходя до завершения ,
+1 Это должен быть принятый ответ. –