2015-01-14 2 views
0

Я использую nginx в качестве переднего сервера, в основном для обслуживания статических файлов и для балансировки нагрузки. Я использую директиву keepalive_timeout 15. Но есть что-то, чего я не понимаю. На моей домашней странице моего веб-сайта много запросов, около 80. Есть несколько изображений, миниатюр, javascript и css-файлов и т. Д. Теперь, если keepalive будет открывать соединение между клиентами и сервером, почему, когда клиент запрашивает мою домашнюю страницу, 80 открытых соединений в течение 15 секунд? Я обнаружил это с помощью netstat или tcptrack.Директива Nginx keepalive, возможно, не работает

Моя проблема в том, что я пытаюсь предотвратить небольшие (d) атаки dos с ddos ​​defilate, которые периодически запускают команду netstat, которая проверяет, сколько соединений открыто для каждого клиента ip и запретить все ips, у которых есть более «myvariable» подключения открываются. Но если кто-то попросит домашнюю страницу, затем для другой страницы, а затем для другой, если он сделает это очень быстро, будет 150+ открытое соединение, потому что для каждого http запросите, что соединение открыто в течение 15 секунд, и я хочу избежать его. Может быть, я что-то не понимаю?

ответ

0

Отложить keepalive; и используйте модуль ограничения скорости Nginx.

+0

с keepalive off Я уверен, что создаю новое соединение для каждого req..and я хочу избежать этого! Я использую limit_req_module для предотвращения наводнения. Я могу ограничить количество соединений parrallel от одного и того же клиента, но таким образом мой сервер будет медленным. Я просто хочу, чтобы директива keepalive работала хорошо: D: D – Radar155

Смежные вопросы