限制 Nginx 最大并发连接数

w00*_*00t 6 nginx

我正在寻找一种方法将最大并发连接数限制为 1。我不希望每个 IP 有连接限制,我已经知道这是支持的。

据我所知,max_conns正是我正在寻找的,但不幸的是它在免费版本中不可用:

此外,以下参数可作为我们商业订阅的一部分提供

限制worker_connections不是一个选项,因为它想要的最小值是 4,并且它影响的不仅仅是传入的请求。

我的会议:

server {
listen       80;
server_name  localhost;

location / {
rewrite_by_lua '
     [some lua code]
';

    proxy_pass http://127.0.0.1:8080;
 }
}
Run Code Online (Sandbox Code Playgroud)

w00*_*00t 8

就在我发布这个问题后不久,我在谷歌搜索如何将 Nginx 文件中的 IP 列入白名单时偶然发现了这一点!考虑到我在过去的 2 个小时里用谷歌搜索了有关速率限制的具体术语,这有点有趣;说说相关性吧,呵呵。

limit_conn_zone $server_name zone=servers:1m;
limit_conn servers 1;
Run Code Online (Sandbox Code Playgroud)

这在http {区块中似乎可以解决问题。

  • 另请参阅http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html#limit_conn (2认同)