nginx-1.9.15

2016-04-19 Пенетрантность Maxim Dounin
Изменения в 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

2016-04-19 Пенетрантность navern

Всем добрый день,


Вас не смущает, что при этом часть соединений будет потеряна?
Ну это не супер приятно да, но альтернатива хуже.  Потому что в 
альтернативном варинте часть соединений будет невозможна на то время, 
пока мы опустили один контейнер, а потом подняли второй.



Но я лишь о том, что если уж править исходники затем, чтобы применить
опцию "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

2016-04-19 Пенетрантность S.A.N
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

2016-04-19 Пенетрантность Maxim Dounin
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

2016-04-19 Пенетрантность S.A.N
> По умолчанию 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

2016-04-19 Пенетрантность amatol15
Добрый день
Есть сервер 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