Hello! On Tue, Mar 18, 2014 at 03:08:31PM +0000, Anatoly Mikhailov wrote: On 18 Mar 2014, at 13:51, Maxim Dounin <mdounin@xxxxxxxxxx> 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@xxxxxxxxxx> 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 для бэкэнда по умолчанию?
|