<div dir="auto"><div>Привет, </div><div dir="auto"><br></div><div dir="auto">Просто увеличить буфер, размер таблицы. Данная ошибка может не быть ошибкой. Например, приложение за NGINX высылает слишком много заголовков и/или большое значение или значения.</div><div><br></div><div data-smartmail="gmail_signature"><i><span style="color:rgb(153,153,153)"></span><br style="color:rgb(153,153,153)"><span style="color:rgb(153,153,153)">Regard,</span><br style="color:rgb(153,153,153)"><br style="color:rgb(153,153,153)"><span style="color:rgb(153,153,153)">Soshnikov Vasily mailto:<a href="mailto:dedok.mad@gmail.com" target="_blank">dedok.mad@gmail.com</a></span><br></i></div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">ср, 5 мар. 2025 г., 21:10 Hennadii Makhomed <<a href="mailto:gmm@csdoc.com">gmm@csdoc.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Здравствуйте, All!<br>
<br>
В error.log встречается время от времени 502 статус и такая запись:<br>
<br>
upstream sent too big header while reading response header from upstream<br>
<br>
но какой именно заголовок в ответе от backend большого размера<br>
и какое его очень большое содержимое не указывается в error.log,<br>
- что значительно затрудняет поиск причины ошибки и ее устранение.<br>
<br>
можно ли сделать так, чтобы в случае возникновения такой 502 ошибки<br>
чтобы имя этого очень большого заголовка ответа и его содержимое <br>
писалось в error.log файл? или вообще все заголовки запроса<br>
и все заголовки ответа пис ались в лог, в случае, если возникает<br>
такая вот неожидання 502 ошибка по причине, что там too big header?<br>
<br>
ошибки такие возникают не так часто и поймать их очень трудно.<br>
приходится включать<br>
<br>
error_log /var/log/nginx/error.log debug;<br>
<br>
и переключаться на nginx-debug, что приводит<br>
к очень быстрому росту лог-файла на диске.<br>
<br>
ведь никаких других способов кроме использования tcpdump<br>
и использования error_log /var/log/nginx/error.log debug;<br>
как я понимаю для поиска причины этой ошибки не существует?<br>
<br>
на backend - не хотят или не умеют найти причину этой ошибки.<br>
<br>
или - имеет смысл не искать причину ошибки,<br>
а просто увеличить размер буферов и все?<br>
<br>
<a href="http://chat.deepseek.com" rel="noreferrer noreferrer" target="_blank">chat.deepseek.com</a> рекомендует поставить<br>
<br>
fastcgi_buffer_size 32k; # Было 4k/8k → увеличиваем до 32k<br>
fastcgi_buffers 16 32k; # Было 8 4k/8k → 16 буферов по 32k<br>
fastcgi_busy_buffers_size 64k; # Было 8k/16k → увеличиваем до 64k<br>
<br>
если это не поможет - то выставлять тогда<br>
<br>
fastcgi_buffer_size 64k;<br>
fastcgi_buffers 32 64k;<br>
fastcgi_busy_buffers_size 128k;<br>
<br>
и если ошибка сохраняется - то увеличивать и дальше, 32k → 64k → 128k<br>
<br>
наверное вот эти значения:<br>
<br>
fastcgi_buffer_size 32k; # Было 4k/8k → увеличиваем до 32k<br>
fastcgi_buffers 16 32k; # Было 8 4k/8k → 16 буферов по 32k<br>
fastcgi_busy_buffers_size 64k; # Было 8k/16k → увеличиваем до 64k<br>
<br>
- это будет нормально, а чтобы не падал с out of memory, просто<br>
дам каждой виртуальной машине 256 гигабайт swap на диске, да и все.<br>
<br>
дефолтовые значения для директив fastcgi_buffer_size, fastcgi_buffers<br>
и fastcgi_busy_buffers_size - такого небольшого размера - это самый<br>
оптимальный вариант, их точно не надо сейчас сделать больше,<br>
хотя бы в два раза больше, для современных сайтов?<br>
<br>
насколько я понимаю, никак нельзя исправить эту ситуацию, что nginx<br>
аварийно завершает обработку запроса и возвращает 502 статус, если<br>
ему размер header не понравился, отправленный ему со стороны upstream?<br>
<br>
если он считает размеры буферов не оптимальными - можно было бы написать<br>
warning в error.log, но зачем же возвращать 502 стратус вместо ответа?<br>
<br>
большой размер заголовков, например, до 32KiB или 64KiB - это же<br>
не является нарушением HTTP стандарта? Зачем же тогда 502 статус?<br>
<br>
и как их правильно тюнить, эти размеры буферов fastcgi_buffer_size,<br>
fastcgi_buffers и fastcgi_busy_buffers_size ? увеливать до тех пор,<br>
пока nginx не прекратит возвращать 502 ошибки на запросы клиентов?<br>
<br>
P.S.<br>
<br>
— В nginx ты можешь настроить всё... и ты будешь настраивать всё!<br>
<br>
так это оказывается не шутка была... это так есть, на самом деле?<br>
<br>
-- <br>
Best regards,<br>
Gena<br>
<br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org" target="_blank" rel="noreferrer">nginx-ru@nginx.org</a><br>
<a href="https://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer noreferrer" target="_blank">https://mailman.nginx.org/mailman/listinfo/nginx-ru</a><br>
</blockquote></div>