Page 1 of 1

Лимит подключений с 1 IP

Posted: Wed Aug 03, 2016 12:32 am
by Blayzer
Доброго времени суток, задался вопросом: Как настроить лимит подключений с 1 IP?
Пробовал искать, но там статьи старые и у меня ничего не вышло, а в iptables лезть боюсь, дабы не испортить проксирование apache + ngix.
Подскажите, знающие люди.
Одновременными подключениями сервер ложат, вручную блочить не круто как-то.

Re: Лимит подключений с 1 IP

Posted: Mon Aug 08, 2016 8:11 am
by Randy
-A INPUT -p tcp -m tcp --dport 1234 -m connlimit --connlimit-above 1 -j REJECT --reject-with icmp-port-unreachable

Где 1234 - порт.
Где 1 - кол-во подключений.

Re: Лимит подключений с 1 IP

Posted: Mon Aug 08, 2016 3:46 pm
by Blayzer
Выставлять на 80 порт, я так понимаю? А если локалхост будет исчерпывать лимиты подключения, что будет? Или оно будет игнорировать локалпорт и айпи машины?

Re: Лимит подключений с 1 IP

Posted: Tue Aug 09, 2016 1:13 pm
by skurudo
Используйте ngx_http_limit_conn_module - http://nginx.org/ru/docs/http/ngx_http_ ... odule.html,
прописав директив limit_conn_zone и limit_conn в конфигурационном файле nginx:

Code: Select all

http {
    include       mime.types;
    default_type  application/octet-stream;
    
    limit_conn_zone    one  $binary_remote_addr  4m;
    limit_conn   one  8;
...

Re: Лимит подключений с 1 IP

Posted: Wed Aug 10, 2016 12:55 am
by Blayzer
skurudo wrote:Используйте ngx_http_limit_conn_module - http://nginx.org/ru/docs/http/ngx_http_ ... odule.html,
прописав директив limit_conn_zone и limit_conn в конфигурационном файле nginx:

Code: Select all

http {
    include       mime.types;
    default_type  application/octet-stream;
    
    limit_conn_zone    one  $binary_remote_addr  4m;
    limit_conn   one  8;
...
Выдает ошибку invalid number of arguments in "limit_conn_zone" directive in /etc/nginx/nginx.conf:50
Изменил формат на:
limit_conn_zone $binary_remote_addr zone=one:4m;
limit_conn one 8;
Запустилось. Все ли верно?

Re: Лимит подключений с 1 IP

Posted: Thu Aug 11, 2016 1:57 pm
by skurudo
Blayzer wrote: Выдает ошибку invalid number of arguments in "limit_conn_zone" directive in /etc/nginx/nginx.conf:50
Изменил формат на:
limit_conn_zone $binary_remote_addr zone=one:4m;
limit_conn one 8;
Запустилось. Все ли верно?
По идее - да,
за не протестированный пример извините - но логика конфигов сравнительно несложная.

Re: Лимит подключений с 1 IP

Posted: Sun Aug 14, 2016 12:09 pm
by Randy
Blayzer wrote:Выставлять на 80 порт, я так понимаю? А если локалхост будет исчерпывать лимиты подключения, что будет? Или оно будет игнорировать локалпорт и айпи машины?
Да, если на 80 порту работает и nginx 8080 закрыт извне.
Конечно, локалку будет игнорить.

С nginx конечно тоже хорошо, но если используются другие приложения, то с iptables будет правильнее.

Re: Лимит подключений с 1 IP

Posted: Mon Aug 15, 2016 11:52 am
by skurudo
Randy wrote:С nginx конечно тоже хорошо, но если используются другие приложения, то с iptables будет правильнее.
Обычно на входе именно nginx.
Впрочем какие-то менее распространенные случаи тоже имеют место быть.