proxy q

Alexander Burnos pointer at colocall.net
Fri Sep 23 14:57:21 MSD 2005


Здравствуйте!

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


More information about the nginx-ru mailing list