Nginx - warn - an upstream response is buffered to a temporary file. Как исправить

Материал из Wiki - Iphoster - the best ever hosting and support. 2005 - 2024
Перейти к:навигация, поиск

Доступная цена


Nginx - warn - an upstream response is buffered to a temporary file. Как исправить

Часто можем наблюдать в логах ошибок nginx сообщения:

2020/04/07 02:40:31 [warn] 17827#17827: *1063 an upstream response is buffered to a temporary file /var/cache/nginx/proxy_temp/4/03/0000000034 while reading upstream, client: 

Это не ошибка, а предупрежедение о том, что буферы nginx в оперативной памяти RAM переполнены и nginx начинает сохранять тело ответа во временный файл на диск (в логах это выглядит как an upstream response is buffered to a temporary file).
Решение:

1) Можно вообще отключить возможно записи во временный файл на диск. Для этого в секцию http {} nginx.conf нужно добавить:

proxy_max_temp_file_size 0;

2) Подобрать размер буферов, то бы ответы бэкенда помещались целиком. Зависит от схемы работы Apache + PHP (как модуль apache или как модуль FASTCGI).

Если PHP работает как модуль apache:
http{
.......
proxy_buffering on; # по умолчанию
proxy_buffer_size 4k;
proxy_buffers 32 4k; # до 132K + ядерные буфера
Если PHP работает как FASTCGI модуль
 http{
.......
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;


Перезапускаем nginx и проверяем работу.

# systemctl restart nginx