Есть ли Handler для закрытия соеденения/запроса или к окончании отправки данных ?

2015-01-21 Пенетрантность tigran.bayburtsyan
Привет.
Есть проблема с получением кокого то хандлера который бы вызывался когда все
данные в out_chain переданны клиенту или когда соеденение с клиентом уже
закрыто.

Например вызываю комбинацыю этих функцый для отправки данных в out_chain.
Поскольку у меня данные больше 700КБ то все равно эта функцыя не отправит
все за раз, и мне бы хотелось вызвать кокойто callback или хандлер при
окончании отправки данных, или же при закрытии соеденения с клиентом.

ngx_http_finalize_request(r, ngx_http_output_filter ( r , out_chain ));

Я так думаю что чтото подобное должно быть в цыкле Nginx но не нахажу
ничего. 
Более важно получить хандлер для закрытия соедения с клиентом, но хандлер
окончания отправки тоже сайдет.

Спасибо заранее :)

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,256235,256235#msg-256235

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Запретить использовать SPDY

2015-01-21 Пенетрантность Igor Sysoev
On 20 Jan 2015, at 14:28, Gena Makhomed g...@csdoc.com wrote:

 On 19.01.2015 14:42, Валентин Бартенев wrote:
 
 Вопрос мой ведь в другом, можно ли обойтись иными способами?
 
 теоретически - да, если научить nginx смотреть на имя сервера
 в SNI и на основании этого имени включать или выключать SPDY
 
 nginx научить то можно, а клиентов кто при этом научит не ходить
 на этот сервер по spdy?
 
 С точки зрения протокола spdy, его анонс на каком-либо соединении
 эквивалентен анонсу на всех виртуальных серверах с тем же портом,
 чьи домены резолвятся в тот же ip, имеют тот же порт и для которых
 валиден сертификат.  Это позволяет запрашивать эти хосты в том же,
 уже открытом spdy-соединении, тем самым экономя хэндшейки - основной
 смысл spdy.
 
 Всё несколько сложнее, чем кажется.
 
 Раньше было необходимо для каждого HTTPS сайта покупать отдельный IP.
 
 Сейчас - поддержка SNI появилась уже практически во всех серверах
 и клиентах. Кроме того изменились ситуация с поисковыми машинами
 и появилась возможность получить бесплатный SSL сертификат:
 
 http://googlewebmastercentral.blogspot.com/2014/08/https-as-ranking-signal.html
 
 https://letsencrypt.org/
 
 https://www.cloudflare.com/ssl
 
 Поэтому в ближайшее время можно ожидать массовое использование SNI
 для HTTPS сайтов, в результате на одном и том же listen сокете IP:PORT
 будут десятки а то и сотни разных HTTPS-сайтов с разными сертификатами.
 
 Соответственно - можно будет управлять включением/выключением поддержки
 протокола SPDY для каждого из этих сайтов в отдельности.
 То есть, теоретически - это сделать возможно.

Теоретичкески - невозможно.
Есть два сервера на одном listen сокете. Один со SPDY, второй - нет.
Пользователь запросил первый сервер. Браузер установил SPDY-соединение к
первому. Потом пользователь запросил второй сервер. Браузер пошлёт этот
запрос по этому же самому SPDY-соединению. Как его обработать не в рамках
SPDY-протокола? Закрыть stream? Вполне возможно, что браузер после этого
вообще перестанет работать с данным IP-адресом по SPDY.


-- 
Igor Sysoev
http://nginx.com

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru