У меня есть PHP 5.3.3 и nginx 0.8.47, скомпилированные из источника, в котором работает блог Wordpress. RSS-канал, созданный Wordpress, был обрезан примерно до 16k (включая заголовок 16k + 90b). Добавив в мою конфигурацию nginx следующее:
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
проблема исчезла .. Однако из того, что я прочитал на Вики-страница Nginx буферы только определяют, когда буферизация переполнится на диск. Нет ничего, что указывало бы на то, что ответ может быть усечен из-за того, что буферы слишком малы.
Итак, мой вопрос: почему ответ был усечен перед изменением этого параметра? Кажется, что запрос не должен был быть усечен, просто немного медленнее из-за буферизации диска.
Дополнительная информация:
Принятый ответ бесполезен, поэтому я оставил комментарий о проверке разрешений на запись, который помог мне. Я запускаю Nginx под другим пользователем, отличным от пользователя по умолчанию, поэтому пришлось изменить разрешения на временный путь по умолчанию. Для установок RHEL это /var/lib/nginx/tmp/fastcgi
и имеет разрешения по умолчанию 700:
chown -R webuser /var/lib/nginx/tmp
Я столкнулся с этой проблемой в Scientific Linux 7, используя пакет из репозиториев SL. Этот шаг не требовался мне в Scientific Linux 6 с использованием пакета, предоставленного Nginx, который имеет 755 разрешений на /var/cache/nginx
Скопируйте этот текст в свой файл conf nginx
http {
.....
fastcgi_buffers 256 4k;
.....
}
После перезапуска nginx
Сначала попробуйте просмотреть error_log (на уровне информации, если на уровне информации ничего не напечатано, попробуйте прочитать журнал отладки).