Re: Проблема с проксированием(не работает proxy buffering)

Maxim Dounin mdounin на mdounin.ru
Пн Фев 1 18:36:43 MSK 2010


Hello!

On Mon, Feb 01, 2010 at 09:20:50AM -0500, unclead wrote:

> В свое время была поставлена задача по настройке проксирования 
> отгрузок контента с портала партнера.
> Настроить само проксирование не составило труда, а вот в 
> детальными настройками возникли проблемы.
> 
> Необходимо, чтобы в случае если юзер на своей стороне разрывает 
> соединение nginx не продолжал выкачивать контент с сервера 
> партнеров.
> 
> Судя по документации за это  отвечает параметр proxy_buffering 
> off;
> Но на практике вышло, что когда абонент рвет соединение, 
> прокси(в данном случае nginx) выкачивает еще часть данных, но 
> они уже не передаются юзеру.
> В итоге у нас в логе одно кол-во переданных байт, у партнера это 
> значение больше.

За закрытие соединения отвечает proxy_ignore_client_abort (по 
умолчанию off, т.е. закрывать).  Впрочем, она у вас в конфиге 
также явно стоит.

Директива proxy_buffering off; отвечает за минимизицию буферизации 
внутри самого nginx'а.  Но как не минимизируй - есть ещё как 
минимум буфера сокета через который всё это забирается (на 
отправку на той стороне, на приём на этой).

[...]

> Разница почти в 100кб на каждом запросе.  За час выходит разница 
> в 200-300 Мб.

Вполне разумные несовпадения, отвечающие разумным размерам 
буферов.  Можно их пытаться уменьшить, но это скорее всего 
негативно скажется на скорости (ну и не факт что ваш партнёр 
согласится тюнить свои буфера). 

Maxim Dounin



Подробная информация о списке рассылки nginx-ru