Quantcast
Channel: Nginx Forum - Nginx Mailing List - Russian
Viewing all articles
Browse latest Browse all 3102

Не отдаёт ответ пока буфер не наполнится (18 replies)

$
0
0
Стоял Apache и веб-сервис (php), который работает постоянно и выдаёт ответ в произвольные моменты небольшими кусочками, всё работало превосходно. Т.е. открываем в браузере адрес и он так может висеть часами выдавая раз в секунду или вообще в произвольное время небольшой ответ по 1 или 2 строчки.

При переезде на стандартную связку Apache + Nginx всё перестало работать. Причина - Nginx не отдаёт ответ, пока не заполнится буфер. Т.е. Apache может выдать 1000 строк и клиент ничего не увидит в браузере и только на 1001 строке Nginx отправит клиенту заполненный буфер. Пока Nginx не накопит 32 килабойта ответа, клиент ничего не получит. Вот конфиг буферов:

client_header_buffer_size 4k;
proxy_buffer_size 32k;
proxy_buffering on;
proxy_buffers 4 32k;

Остальные сайты, которые крутятся рядом с сервисом, стали работать заметно хуже. Если конкретно, то была потеряна отзывчивость, сайты стали открываться только через 0.2-0.5 секунд опять же таки видимо только после того, как Nginx накопит буфер. Т.е. вместо супер быстрой обработки запросов Nginx наоборот ухудшил всё что можно и видимо виноват в этом я.

Я озадачен, подскажите пожалуйста что делаю не так? В goole ответа не нашел, хотя мне кажется такой вопрос уже должен был обсуждаться за столько лет. Ткните носом если есть тема с решением. Как сделать, чтобы Nginx моментально начинал отдавать ответ клиенту синхронно с Apache, а не тогда когда получит буфер?

Понятное дело, что буферы в Nginx созданы чтобы максимально быстро получить ответ от Apache с PHP и освободить их, но как сделать чтобы буфер мгновенно отдавался сразу клиенту начиная с первого полученного в буфер байта?

Viewing all articles
Browse latest Browse all 3102

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>