Назад | Перейти на главную страницу

Почему ответ обрезается до 16 КБ с помощью php + fastcgi?

У меня есть 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 (на уровне информации, если на уровне информации ничего не напечатано, попробуйте прочитать журнал отладки).