ПРОЕКТЫ 


  АРХИВ 


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]

Ограничение количества одновременных соединений на сайт


  • To: nginx-ru@xxxxxxxxx
  • Subject: Ограничение количества одновременных соединений на сайт
  • From: Volkov Oleg <volkov@xxxxxxxxxxxxxx>
  • Date: Fri, 15 Feb 2008 11:52:38 +0300
  • Organization: teratelecom

nginx используется для отдачи статики и перенаправления запросов к apache для 
обработки php скриптов. Хочется ограничить количество запросов к apache для 
данного сайта.

worker_processes 20;
events {
        worker_connections  8192;
        use epoll;
}
http {
        ...
        limit_zone one $binary_remote_addr 10m;
        limit_conn one 64;
        limit_zone too $http_host 10m;
        upstream  apache0  {
            ip_hash;
...
        }
        server {
        ....
        
        location ~* ^(.+\.(php|html)|.*/)$ {
                proxy_pass              http://apache0;
                proxy_set_header        Host <ZZZ>;
                proxy_set_header        X-Forwarded-For  
$proxy_add_x_forwarded_for;
                proxy_set_header        X-Real-IP  $remote_addr;
                index                   index.php index.html;
                limit_conn too 100;
        }
        location /  {
                root   /data/<ZZZ>/htdocs;
        }
        server {
        ...
                limit_conn too 200;
        ...
        }
}

Как более оптимально написать ограничения (для too)?
1. Смущает что limit_zone too $http_host 10m; явно не оптимальная запись. 
Значение переменной $http_host может быть достаточно длинным - нет ли готовой 
переменной, нумерующий виртуальные хосты? Или воткнуть внутрь каждой секции 
server строчку типа set $server_number 1; (2,3,4,...) и использовать в хэше 
too переменную $server_number вместо $http_host.
2. Как правильно вычислить размер хэша? Он зависит от количества одновременно 
обрабатываемых значений или от количества уникальных значений переменной 
$http_host ? Если второе, то стоит его уменьшить (количество всех алиасов 
сайтов не более 100) ?

Что посоветуете ?

---
С уважением, Волков Олег.



 




Copyright © Lexa Software, 1996-2009.