На одном из ресурсов с хорошим посещением заметил в логах часто повторяющуюся ошибку
2016/10/05 20:16:58 [warn] 6488#0: *6021227 an upstream response is buffered to a temporary file /var/cache/nginx/fastcgi_temp/4/20/0000438204 while reading upstream, client: 8.8.8.8, server: example.com, request: "GET /6155-protrek_japonskie_na-remeshke_calendar HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "example.com"
Дело в том, что перед тем как передать ответ от php-fpm nginx помещает его в буфер в памяти. Если весь запрос не помещается, то оставшаяся его часть записывается во временный файл на диске. По умолчанию этих буферов 8 и под каждый из них выделено всего 4 кб памяти.
Решением будет увеличить объём буфера(ов), используя модуль fastcgi_buffers
location ~ .php$ { ... fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; ... }
Проверяем и применяем настройки:
# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful root@protimes:~# nginx -s reload