[warn] a client request body is buffered to a temporary file

Gena Makhomed gmm на csdoc.com
Вт Июл 12 19:15:31 UTC 2022


On 12.07.2022 20:12, Илья Шипицин wrote:

>> и еще примерно 20% - это "предупреждения" о том, что
>> a client request body is buffered to a temporary file

> это же можно выключить через proxy_request_buffering ?

Да, в моем случае - это вполне подходит, спасибо.

     proxy_http_version 1.1;
     proxy_request_buffering off;

Потому что у меня у каждого nginx frontend
есть всего один nginx backend для каждого сайта:
nginx frontend <=> nginx backend <=> php-fpm

Самое главное - не забыть включить директиву proxy_http_version 1.1;
на nginx frontend, иначе будут проблемы из-за использования HTTP/1.0

https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_request_buffering

When HTTP/1.1 chunked transfer encoding is used to send the original
request body, the request body will be buffered regardless of the
directive value unless HTTP/1.1 is enabled for proxying.

>> Еще - было бы очень хорошо, чтобы nginx умел писать логи на диск
>> не до тех пор, пока там останется 0 байт свободного места, а хотя
>> бы оставлял 1 гигабайт для файлов в /var/cache/nginx/client_temp

> буферизация на диск имеет кучу побочных эффектов.
> можно через Модуль ngx_http_proxy_module (nginx.org)
> <https://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_max_temp_file_size>
> выключить дисковую часть (оставив буферизацию в памяти)

Директива proxy_max_temp_file_size 0; на nginx frontend у меня прописана
Но она влияет только на буферизацию проксируемых от backend`ов ответов.

Полностью отключить использование диска nginx frontend
для проксирования и запросов и ответов можно
с помощью такого набора директив:

     proxy_http_version 1.1;
     proxy_request_buffering off;
     proxy_max_temp_file_size 0;

Однако это имеет смысл только в том случае, если nginx frontend
проксирует запросы на nginx backend, на котором включена буферизация 
запросов и ответов на диск. Если в качестве backend`а используется
httpd apache - использование диска для буферизации
наверное лучше будет не выключать.

-- 
Best regards,
  Gena


Подробная информация о списке рассылки nginx-ru