Здравствуйте!
On Fri, Sep 23, 2005 at 02:37:28PM +0400, Igor Sysoev wrote:
> On Fri, 23 Sep 2005, Alexander Burnos wrote:
> >Есть nginx, который принимает https GET запросы и отдает их бэкенду по
> >http.
> >Задача стоит такая, чтобы отдавать ответ клиенту, по мере выдачи его
> >бэкендом, а не тогда, когда бэкенд окончит request.
> >Пробовал играться с буферами для этой цели, вроде:
> > location /myurl/ {
> > proxy_buffers 2 1;
> > proxy_busy_buffers_size 1;
> > proxy_header_buffer_size 1;
> > proxy_pass http://backend/;
> > }
> >Предпологая, что в этом случае nginx будет отдавать ответ backend'а
> >клиенту сразу, как только получит хоть один байт.
> >Но в итоге лишь получают от nginx 502 Bad Gateway.
>
> proxy_header_buffer_size не может быть меньше, чем размер заголовка ответа,
> из-за этого и 502.
Спасибо.
Это я уже экспериментальным путем выяснил :)
> nginx передаёт ответа бэкенда по мере его поступления, но при этом
> ещё и буферизует. Что-то близкое к потоку могло бы получится при таких
> настройках:
>
> proxy_header_buffer_size 512;
> proxy_buffers 2 512;
> proxy_busy_buffers_size 512;
> proxy_max_temp_file_size 0;
>
> Но если ответ https, то там используется 16K буфер для уменьшения
> оверхеда SSL.
В том то и дело, что ответ клиенту отдается по https.
А можно ли этот буфер уменьшить конкретно для одного location?
Или только можно пересобрать с другим размером буфера для всех https
коннектов? Насколько сильно упадет производительность тогда при
обработке https запросов?
--
Alexander Burnos