Назад | Перейти на главную страницу

Закрытие прокси-сервера для служебного сокета при потере клиента

Сейчас мы используем nginx 1.6 для обратного прокси-сервера наших сервисов клиенту. Мы также используем Server-Sent Events, слой поверх HTTP, который держит сокет открытым.

Вот кусок необходимого конфига.

proxy_buffering off;
proxy_http_version 1.1;

Вот наша установка

Client <---> nginx <---> Service
     Socket 1     Socket 2

Когда я закрываю браузер без надлежащего отключения, Socket 1 закрывается, а Socket 2 все еще открыт. Сервис видит, что nginx все еще подключен, и продолжает отправлять туда сообщения.

Вот сценарий, который я вижу с wirehark.

Client -XXX- nginx <---> Service
     Socket 1     Socket 2

Есть ли способ заставить nginx закрыть Socket 2?

Будет ли HTTP Connection: keep-alive вызвать какое-либо неблагоприятное поведение?