Данное предупреждение выводится в логах Nginx при работе в связке с PHP-FPM:
Проблема вызвана недостаточным размером буфера Nginx, связи с чем для передачи полученных от PHP данных, Nginx предварительно записывает их во временный файл на диске.
Исправить: an upstream response is buffered to a temporary file
Для устранения предупреждения, необходимо увеличить размер буфера в Nginx. Для этого в секцию location ~ .php$, необходимо добавить следующие параметры:
1 2 3 |
fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; |
В итоге должно получится как в примере ниже:
1 2 3 4 5 6 7 8 9 10 |
location ~ .php$ { try_files $uri = 404; fastcgi_pass unix:/var/run/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; include fastcgi_params; } |
Как узнать, какого размера буфер требуется для страницы?
Перед тем как передать ответ от интерфейса FastCGI (например, PHP-FPM) Nginx помещает его в буфер расположенный в памяти. Если весь ответ не помещается в памяти, часть его записывается во временный файл на диске.
Средний размер ответа можно указать командой:
1 |
echo $(( `awk '($9 ~ /200/)' access.log | awk '{print $10}' | awk '{s+=$1} END {print s}'` / `awk '($9 ~ /200/)' access.log | wc -l` )) |