Ответ 1
Вы можете легко найти ответ на SO, но в действительности имеет значение один вариант конфигурации:
http {
fastcgi_buffer_size 32k;
}
Тем не менее эта рекомендация, вероятно, не то, что вы хотите. Давайте рассмотрим детали, почему это помогает решить проблему:
Синтаксис: размер числа fastcgi_buffers;
По умолчанию: fastcgi_buffers 8 4k | 8k;
Контекст: http, server, location
Устанавливает количество и размер буферов, используемых для чтения ответа с сервера FastCGI, для одного соединения. По умолчанию размер буфера равен одной странице памяти. Это либо 4K, либо 8K, в зависимости от платформы.
Синтаксис: fastcgi_buffer_size size;
По умолчанию: fastcgi_buffer_size 4k | 8k;
Контекст: http, server, location
Устанавливает размер буфера, используемого для чтения первой части ответ, полученный от сервера FastCGI. Эта часть обычно содержит небольшой заголовок ответа. По умолчанию размер буфера равен одному памяти. Это либо 4K, либо 8K, в зависимости от платформы. Оно может однако, меньше.
Таким образом, существует только fastcgi_buffer_size, потому что заголовок ответа не вписывается в буфер 4 КБ. В большинстве случаев это происходит из-за большого размера файла cookie. Поэтому настоятельно рекомендуется оставить настройки, но вместо этого уменьшить размер файлов cookie и хранить там только минимальное количество данных, например user_id, session_id, поэтому общее хранилище файлов cookie для нечувствительного набора идентификаторов. Некоторые браузеры плохо обрабатывают большие файлы cookie.
Таким образом, решение будет:
1. Reduce cookie size
2. Get back to original settings
http {
fastcgi_buffers 8 4k;
fastcgi_buffer_size 4k;
}
В случае возникновения проблем с уменьшением размера файла cookie отключите буферизацию для определенного местоположения:
location /request {
fastcgi_buffering off;
}