ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Не работает limit conn



Hello!

On Mon, Jul 25, 2011 at 11:14:00AM -0400, xganet wrote:

> Не работает  limit_conn при f5 сервер падает
> Bad Gateway 502 , пример конфига:

Директива limit_conn позволяет ограничить количество одновременно 
соединений с выполняющимися в них запросами, e.g. запретить 
скачивание большого количества файлов одновременно.  При нажатии в 
браузере кнопки F5 - соединение будет приблизительно одно, т.е.  
limit_conn'у делать будет нечего.

А вот во что у вас превратится бекенд от подобной нагрузки - 
вопрос отдельный, и судя по всему он у вас превращается в тыкву.  
Что в общем-то не удивительно - запрос получен, бекенд пошёл 
работать, и обычно код на бекенде даже не пытается узнать, было ли 
соединение закрыто.

Можно пытаться использовать proxy_ignore_client_abort (в этом 
случае nginx будет ждать ответа бекенда даже если клиент закрыл 
соединение, и limit_conn будет лучше отражать реальность с точки 
зрения бекенда).  Но правильнее и эффективнее защищаться от F5 с 
помощью limit_req.

> http {
>         limit_zone   one  $binary_remote_addr  10m;
>         ...
>         server {
>              ...    
>            limit_conn   one  25;
> 
>             location /download/ {
>              ...   
>             }
> 
> 
> limit_req_zone работает, от f5 спасает, но от
> флуда не спасает, 1000-2000 коннектов с
> одного ip проходят и сервер в аут ((

Совмещайте.  limit_req для защиты бекендов от нагрузки, limit_conn 
для защиты от любителей качать много одновременно, accept-фильтры 
и/или firewall - для защиты от атак типа slowloris.

Ну и про правильную настройку системы и nginx'а забывать не стоит.  
Работать с worker_connections 1024 - можно, но не нужно; nginx без 
проблем держит десятки тысяч соединений на одной машине, 
достаточно его об этом попросить и систему соответствующим образом 
настроить (читай: лимиты на количество файлов/сокетов поднять).

Maxim Dounin

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


 




Copyright © Lexa Software, 1996-2009.