Эти несколько строк помогут немного снизить нагрузку на сервер, обрубив множество медленных клиентов, которые занимают канал. В моём случае netstat -nalt | grep :80 | wc -l говорил примерно о 1500 клиентах, зависших в статусе TIME_WAIT, и даже статика отдавалась очень медленно.
Эти настройки - всего лишь пример, для вашего сервера подбирайте свои лимиты.
Эти настройки - всего лишь пример, для вашего сервера подбирайте свои лимиты.
Код:
http {
limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m; # Ограничение на количество соединений с одного IP
limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=5r/s; # Ограничение на количество соединений в рамках одной сессии, максимальное количество - 5 запросов в секунду
}
server {
location / {
limit_conn conn_limit_per_ip 10;
limit_req zone=req_limit_per_ip burst=10 nodelay;
}
client_body_timeout 5s; # Таймаут на получение тела запроса от клиента
client_header_timeout 5s; # Таймаут на получение заголовков запроса от клиента
}
It's time to kick gum and chew ass. And i'm all out of ass.