Стоял 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 и освободить их, но как сделать чтобы буфер мгновенно отдавался сразу клиенту начиная с первого полученного в буфер байта? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,255640,255640#msg-255640 _______________________________________________ nginx-ru mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-ru
