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

Anatoly Mikhailov anatoly at sonru.com
Wed Mar 19 11:15:11 UTC 2014


On 19 Mar 2014, at 10:42, Anatoly Mikhailov <anatoly at sonru.com> wrote:

> 
> On 18 Mar 2014, at 15:10, Maxim Dounin <mdounin at mdounin.ru> wrote:
> 
>> 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?
>> 
>> Нет.
> 
> супер, переписал конфигурацию для проксирования S3 на upstream, получилось очень классно,
> вопрос - почему бы не сделать keepalive для бэкэнда по умолчанию?
> 

набросал тут конфиг для проксирования соединений к backend и S3 с кэшированием и keep-alive:
https://gist.github.com/mikhailov/9639593

Максим, что тут можно поправить?


>> 
>> -- 
>> Maxim Dounin
>> http://nginx.org/
>> 
>> _______________________________________________
>> nginx-ru mailing list
>> nginx-ru at nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
> 
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20140319/612b76ed/attachment-0001.html>


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