Hello! On Fri, Apr 17, 2015 at 12:28:03PM -0400, dwow wrote:
> Maxim Dounin Wrote: > ------------------------------------------------------- > > Если limit_conn в других location'ах не включён, то для > > ограничения всех соединений в конкретном location'е - достаточно > > любого константного значения. > > Если не используется в др. локейшенах, то можно сделать вот так: > limit_conn_zone "service" zone=perservice:10m; > location /services/post/ { > limit_conn perservice 1; > proxy_pass bakcend; > } > > и будет работать? Да. В старых версиях (до nginx 1.7.6), возможно, потребуется какая-нибудь константная переменная (например, $nginx_version), а не просто строка. > > Если send_timeout случится - то да. Если же вдруг какой-то клиент > > очерь медленно качает что-то большое - то процесс может занять > > бесконечное время. > и как от таких избавляться? В общем случае - никак, это обычные клиенты, которые просто получают ответ. Собственно, как раз одно из преимуществ nginx'а состоит в том, что он умеет таких клиентов эффективно обслуживать, тратя на это минимум ресурсов. Ну и ограничивать с помощью директивы limit_conn, не давая захватить слишком много ресурсов сервера. В вашем случае - проблема в том, что вы пытаетесь limit_conn применить не по назначению, и такое использование приводит к тому, что один медленный пользователь может легко заблокировать доступ всем остальным. -- Maxim Dounin http://nginx.org/ _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru