nginx-1.9.15
Изменения в nginx 1.9.15 19.04.2016 *) Исправление: при использовании HHVM в качестве FastCGI-сервера могли возникать ошибки "recv() failed". *) Исправление: при использовании HTTP/2 и директив limit_req или auth_request при чтении тела запроса мог произойти таймаут или ошибка "client violated flow control"; ошибка появилась в 1.9.14. *) Изменение: при использовании HTTP/2 ответ мог не показываться некоторыми браузерами, если тело запроса было прочитано не целиком; ошибка появилась в 1.9.14. *) Исправление: при использовании директивы "aio threads" соединения могли зависать. Спасибо Mindaugas Rasiukevicius. -- Maxim Dounin http://nginx.org/ ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: reuseport в конфигах nginx
Всем добрый день, Вас не смущает, что при этом часть соединений будет потеряна? Ну это не супер приятно да, но альтернатива хуже. Потому что в альтернативном варинте часть соединений будет невозможна на то время, пока мы опустили один контейнер, а потом подняли второй. Но я лишь о том, что если уж править исходники затем, чтобы применить опцию "reuseport" по умолчанию, то править функцию парсинга директивы ngx_http_core_listen(), а не вмешиваться в функционирование. Сделал указанным способом, пока проверил на тестовом стенде - работает. Посмотрите патч во вложении? Патч для nginx'а 1.9.13. diff --git a/src/http/ngx_http.c b/src/http/ngx_http.c index 0ceb613..d278752 100644 --- a/src/http/ngx_http.c +++ b/src/http/ngx_http.c @@ -1229,6 +1229,9 @@ ngx_http_add_addresses(ngx_conf_t *cf, ngx_http_core_srv_conf_t *cscf, #if (NGX_HTTP_V2) ngx_uint_t http2; #endif +#if (NGX_HAVE_REUSEPORT) +unsigned reuseport; +#endif /* * we cannot compare whole sockaddr struct's as kernel @@ -1286,6 +1289,9 @@ ngx_http_add_addresses(ngx_conf_t *cf, ngx_http_core_srv_conf_t *cscf, #if (NGX_HTTP_V2) http2 = lsopt->http2 || addr[i].opt.http2; #endif +#if (NGX_HAVE_REUSEPORT) +reuseport = 1; +#endif if (lsopt->set) { @@ -1320,6 +1326,9 @@ ngx_http_add_addresses(ngx_conf_t *cf, ngx_http_core_srv_conf_t *cscf, #if (NGX_HTTP_V2) addr[i].opt.http2 = http2; #endif +#if (NGX_HAVE_REUSEPORT) +addr[i].opt.reuseport = reuseport; +#endif return NGX_OK; } @@ -1820,7 +1829,7 @@ ngx_http_add_listening(ngx_conf_t *cf, ngx_http_conf_addr_t *addr) #endif #if (NGX_HAVE_REUSEPORT) -ls->reuseport = addr->opt.reuseport; +ls->reuseport = 1; #endif return ls; diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c index 7a126bd..e7be45f 100644 --- a/src/http/ngx_http_core_module.c +++ b/src/http/ngx_http_core_module.c @@ -4180,11 +4180,9 @@ ngx_http_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) #endif } -if (ngx_strcmp(value[n].data, "reuseport") == 0) { +if (1) { #if (NGX_HAVE_REUSEPORT) lsopt.reuseport = 1; -lsopt.set = 1; -lsopt.bind = 1; #else ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, "reuseport is not supported " ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Slice cache
Maxim Dounin Wrote: --- > Hello! > > On Tue, Apr 19, 2016 at 03:24:37AM -0400, S.A.N wrote: > > > > По умолчанию range-запросы из кеша работают только в том случае, > > > если в ответе бекенда был заголовок Accept-Ranges и должна быть > > > явно указана длина ответа. > > > > Супер, спасибо, отдали Accept-Ranges все работает. > > > > Кстати есть ли смысл бекенду сжимать (gzip) свой ответ, если клиенты > > запрашивают кеш частично (Range)? > > Я так понимаю что в этом случаи Nginx каждый раз надо разжимать > большой > > ответ, потом сжимать часть которые запросил клиент. > > Я бы не стал. > > Сжатие на лету исключает возможность использования range-запросов, > т.к. сжимается весь ответ целиком и результат сжатия может быть > разный в зависимости от временных факторов, а range-запросы должны > применяться к уже сжатому ответу. Для range-запросов могло бы > работать сжатие на уровне передачи по http ("Transfer-Encoding: > gzip"), но оно практически нигде не поддерживается. > > Можно пытаться детерминировано сжимать на бекенде, и > соответственно потом из кеша nginx будет раздавать сжатый файл с > учётом range-запросов, но разжимать это nginx не сможет, либо же > пропадёт возможность использовать range-запросы для расжатого > ответа (потому что нужна явно заданная длина, см. предыдущий > ответ, а длина при расжатии заранее неизвестна). > Понял, спасибо. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,266232,266257#msg-266257 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Slice cache
Hello! On Tue, Apr 19, 2016 at 03:24:37AM -0400, S.A.N wrote: > > По умолчанию range-запросы из кеша работают только в том случае, > > если в ответе бекенда был заголовок Accept-Ranges и должна быть > > явно указана длина ответа. > > Супер, спасибо, отдали Accept-Ranges все работает. > > Кстати есть ли смысл бекенду сжимать (gzip) свой ответ, если клиенты > запрашивают кеш частично (Range)? > Я так понимаю что в этом случаи Nginx каждый раз надо разжимать большой > ответ, потом сжимать часть которые запросил клиент. Я бы не стал. Сжатие на лету исключает возможность использования range-запросов, т.к. сжимается весь ответ целиком и результат сжатия может быть разный в зависимости от временных факторов, а range-запросы должны применяться к уже сжатому ответу. Для range-запросов могло бы работать сжатие на уровне передачи по http ("Transfer-Encoding: gzip"), но оно практически нигде не поддерживается. Можно пытаться детерминировано сжимать на бекенде, и соответственно потом из кеша nginx будет раздавать сжатый файл с учётом range-запросов, но разжимать это nginx не сможет, либо же пропадёт возможность использовать range-запросы для расжатого ответа (потому что нужна явно заданная длина, см. предыдущий ответ, а длина при расжатии заранее неизвестна). -- Maxim Dounin http://nginx.org/ ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Slice cache
> По умолчанию range-запросы из кеша работают только в том случае, > если в ответе бекенда был заголовок Accept-Ranges и должна быть > явно указана длина ответа. Супер, спасибо, отдали Accept-Ranges все работает. Кстати есть ли смысл бекенду сжимать (gzip) свой ответ, если клиенты запрашивают кеш частично (Range)? Я так понимаю что в этом случаи Nginx каждый раз надо разжимать большой ответ, потом сжимать часть которые запросил клиент. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,266232,266247#msg-266247 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Nginx ssl
Добрый день Есть сервер nginx работает как обратный прокси сервер, для некоторого количества сайтов, один из них нужно перевести на https, конфиг server { server_name www.example.com example.com; location / { proxy_pass http://192.168.0.23; proxy_redirect http://localhost/ http://$host:$server_port/; proxy_buffering off; proxy_set_headerHost$host; proxy_set_headerX-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 8M; } По адресу 192.168.0.23 Виртуалка с Nginx + phpfpm Вопрос где включать ssl на гипервизоре(обратная прокся) или на виртуалке с сайтом? И если можно в двух словах о том как это сделать. Спасибо Posted at Nginx Forum: https://forum.nginx.org/read.php?21,266240,266240#msg-266240 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru