URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 92641
[ Назад ]

Исходное сообщение
"при Conn_limit не все загружаются рисунки"

Отправлено dmitry_sairus , 23-Ноя-11 18:37 
При использовании модуля connlimit в iptables:
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 5 -j REJECT

на сайте грузится только часть рисунков.

Тоже самое если настроить nginx на ограничение одновременных подключений (nginx стоит перед апач).

KeepAlive в httpd.conf отключен.

Подскажите, с чем может бы вызвана такая работа веб-серверов? Как можно ее решить?


Содержание

Сообщения в этом обсуждении
"при Conn_limit не все загружаются рисунки"
Отправлено Andrey Mitrofanov , 23-Ноя-11 18:43 
> При использовании модуля connlimit в iptables:
> Тоже самое если настроить nginx на ограничение одновременных подключений
> Подскажите, с чем может бы вызвана такая работа веб-серверов? Как можно ее
> решить?

Предлагаю "решить работу веб-сервера" не использованием меодуля connlimit в iptables и не ограничиванием одновременных подключений в nginx.


"при Conn_limit не все загружаются рисунки"
Отправлено PavelR , 23-Ноя-11 18:56 
> При использовании модуля connlimit в iptables:
> iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 5
> -j REJECT
> на сайте грузится только часть рисунков.
> Тоже самое если настроить nginx на ограничение одновременных подключений (nginx стоит перед
> апач).
> KeepAlive в httpd.conf отключен.
> Подскажите, с чем может бы вызвана такая работа веб-серверов?

Вызвана - Вашими настройками.

>Как можно ее решить?

Включить логику, изменить настройки.


-------------
....
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 8080 -m connlimit --connlimit-above 20 --connlimit-mask 32 -j REJECT --reject-with icmp-port-unreachable
-A INPUT -i eth0 -p tcp -m tcp --dport 8080 --tcp-flags FIN,SYN,RST,ACK SYN -m hashlimit --hashlimit-above 1/sec --hashlimit-burst 10 --hashlimit-mode srcip --hashlimit-name dport8080 -j DROP
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -m connlimit --connlimit-above 30 --connlimit-mask 32 -j REJECT --reject-with icmp-port-unreachable
-A INPUT -i eth0 -p tcp -m tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -m hashlimit --hashlimit-above 2/sec --hashlimit-burst 10 --hashlimit-mode srcip --hashlimit-name dport8080 -j DROP
....

замечаний нет.



"при Conn_limit не все загружаются рисунки"
Отправлено dmitry_sairus , 23-Ноя-11 19:03 

>[оверквотинг удален]
> -A INPUT -i eth0 -p tcp -m tcp --dport 8080 --tcp-flags FIN,SYN,RST,ACK
> SYN -m hashlimit --hashlimit-above 1/sec --hashlimit-burst 10 --hashlimit-mode srcip
> --hashlimit-name dport8080 -j DROP
> -A INPUT -i eth0 -p tcp -m tcp --dport 80 -m connlimit
> --connlimit-above 30 --connlimit-mask 32 -j REJECT --reject-with icmp-port-unreachable
> -A INPUT -i eth0 -p tcp -m tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK
> SYN -m hashlimit --hashlimit-above 2/sec --hashlimit-burst 10 --hashlimit-mode srcip
> --hashlimit-name dport8080 -j DROP
> ....
> замечаний нет.

Спасибо. А в каких случаях тогда необходимо conn_limit для nginx? Если с коробки установка данной опции привод к вот такому нехорошему последствию?


"при Conn_limit не все загружаются рисунки"
Отправлено PavelR , 23-Ноя-11 19:30 

> Если с коробки установка данной опции привод к вот такому нехорошему последствию?

"Выстрелить в ногу" можно еще кучей других способов.



"при Conn_limit не все загружаются рисунки"
Отправлено PavelR , 24-Ноя-11 08:28 

> Спасибо. А в каких случаях тогда необходимо conn_limit для nginx?

Ограничить, к примеру, число скачиваний файла.

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

> Если с коробки установка данной опции привод к вот такому нехорошему последствию?

Не совсем ясен смысл фразы "с коробки".



"при Conn_limit не все загружаются рисунки"
Отправлено PavelR , 24-Ноя-11 08:29 
>> Спасибо. А в каких случаях тогда необходимо conn_limit для nginx?
> Ограничить, к примеру, число скачиваний файла.

Файрволл ограничивает TCP-соединения, а в веб-сервере настройка применяется на разных уровнях - на уровне всего веб-сервера, на уровне отдельного веб-сайта, а в nginx также можно ограничивать на уровне location, что позволяет ограничивать по еще более точным условиям.


"при Conn_limit не все загружаются рисунки"
Отправлено dmitry_sairus , 28-Ноя-11 02:57 
В продолжение обсуждения...

На каком уровне лучше защищаться от простых  ab, для начала (ApacheBenchmark).

Добавил правило в файрвол на 5/sec (таймаут 10сек) - начали появляться IP Google. Думаю это хорошим ничем не закончится... с поисковиком не хочется шутить...

Сколько в лимит на практике ставить необходимо, или лучше применять другие решения ?