Re: HTTP проксирование 1.1

Maxim Dounin mdounin at mdounin.ru
Tue Mar 18 15:10:47 UTC 2014


Hello!

On Tue, Mar 18, 2014 at 03:08:31PM +0000, Anatoly Mikhailov wrote:

> 
> On 18 Mar 2014, at 13:51, Maxim Dounin <mdounin at mdounin.ru> wrote:
> 
> > Hello!
> > 
> > On Tue, Mar 18, 2014 at 12:28:08PM +0000, Anatoly Mikhailov wrote:
> > 
> >> 
> >> On 18 Mar 2014, at 11:08, Maxim Dounin <mdounin at mdounin.ru> wrote:
> >> 
> >>> Hello!
> >>> 
> >>> On Tue, Mar 18, 2014 at 11:04:27AM +0000, Anatoly Mikhailov wrote:
> >>> 
> >>>> Добрый день,
> >>>> 
> >>>> По последнему blog post (http://nginx.com/blog/load-balancing-with-nginx-plus-part2/)
> >>>> возник вопрос: какой эффект производит proxy_set_header Connection “"?
> >>>> 
> >>>> Поясню вопрос на примере, имеется следующий конфиг для проксирования 
> >>>> S3 запросов (опущены лишние детали):
> >>>> 
> >>>> location ~* ^/i/(.*) {
> >>>> proxy_http_version     1.1;
> >>>> proxy_set_header       Authorization '';
> >>>> proxy_hide_header      Set-Cookie;
> >>>> proxy_ignore_headers   "Set-Cookie”;
> >>>> ...
> >>>> proxy_pass             ...;
> >>>> }
> >>>> 
> >>>> В данном случае версия http для проксирования установлена в 1.1,
> >>>> то есть ожидаем повторное использование подключения,
> >>>> что в данном случае изменит proxy_set_header Connection “" ?
> >>> 
> >>> По умолчанию добавляется "Connection: close"[1], и использование  
> >>> "proxy_set_header Connection ''" нужно, чтобы этого избежать.
> >>> 
> >>> http://nginx.org/r/proxy_set_header/ru
> >> 
> >> Максим, понятно, HTTP подключение закрывается после каждого запроса по умолчанию,
> >> но достаточно ли Connection “” для реиспользования HTTP 1.1 подключения? Обязательно ли
> >> явно добавлять блок upstream и указывать директиву keepalive?
> > 
> > Нужно и то, и другое.  Из заголовков запроса нужно убрать 
> > "Connection: close", чтобы бекенд не закрывал соединение, а сам 
> > nginx - проинструктировать соединения сохранять и использовать 
> > повторно.
> 
> Понял, спасибо, Максим! Контекст директивы keepalive для бэкэнда только upstream,
> если смотреть документацию, но может есть какой-то элегантный способ передать
> keepalive в proxy_pass сразу, без объявления блока upstream?

Нет.

-- 
Maxim Dounin
http://nginx.org/



Подробная информация о списке рассылки nginx-ru