Nginx - warn - an upstream response is buffered to a temporary file. Как исправить: различия между версиями
Материал из Wiki - Iphoster - the best ever hosting and support. 2005 - 2024
Admin iph (обсуждение | вклад) |
Admin iph (обсуждение | вклад) |
||
Строка 8: | Строка 8: | ||
Это не ошибка, а предупрежедение о том, что буферы nginx в оперативной памяти RAM переполнены и nginx начинает сохранять тело ответа во временный файл на диск (в логах это выглядит как an upstream response is buffered to a temporary file).<br /> | Это не ошибка, а предупрежедение о том, что буферы nginx в оперативной памяти RAM переполнены и nginx начинает сохранять тело ответа во временный файл на диск (в логах это выглядит как an upstream response is buffered to a temporary file).<br /> | ||
− | Решение: | + | '''Решение''':<br /> |
+ | |||
1) Можно вообще '''отключить возможно записи во временный файл на диск'''. Для этого в секцию http {} nginx.conf нужно добавить: | 1) Можно вообще '''отключить возможно записи во временный файл на диск'''. Для этого в секцию http {} nginx.conf нужно добавить: | ||
proxy_max_temp_file_size 0; | proxy_max_temp_file_size 0; | ||
− | 2) Подобрать размер буферов, то бы ответы бэкенда помещались целиком. Зависит от схемы работы Apache + PHP (как модуль apache или как модуль FASTCGI). | + | 2) '''Подобрать размер буферов, то бы ответы бэкенда помещались целиком'''. Зависит от схемы работы Apache + PHP (как модуль apache или как модуль FASTCGI). |
− | PHP как модуль apache: | + | Если PHP работает как модуль apache: |
http{ | http{ | ||
....... | ....... | ||
Строка 20: | Строка 21: | ||
proxy_buffers 32 4k; # до 132K + ядерные буфера | proxy_buffers 32 4k; # до 132K + ядерные буфера | ||
− | PHP как FASTCGI модуль | + | Если PHP работает как FASTCGI модуль |
http{ | http{ | ||
....... | ....... |
Версия 06:38, 7 апреля 2020
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