Jer*_*oen 7 nginx varnish reverse-proxy load-balancing apache-2.2
我使用 nginx 作为后端的反向代理。配置非常基本,例如核心只是:
upstream myservice {
server 127.0.0.1:80;
server 123.123.123.123:80;
}
location / {
proxy_pass http://myservice;
proxy_set_header Host myservice;
}
Run Code Online (Sandbox Code Playgroud)
现在我的服务在计算上非常繁重,我希望 nginx 将活动并行(同时)请求的数量限制为单个上游后端,例如 10。
我查看了limit_req模块,但是这个模块似乎只关注每分钟传入的请求。我特别想限制活动后端连接的数量;即考虑请求是否已经返回。这可能吗?
在清漆中,这可以使用例如
backend cpu1 {
.host = "127.0.0.1";
.port = "80";
.max_connections = 20;
}
Run Code Online (Sandbox Code Playgroud)
但是我需要为此使用nginx。
dwu*_*urf 10
看看limit_conn模块。虽然我发现的所有示例都是通过远程 IP 进行限制的,但如果您将常量传递给 limit_conn_zone 而不是远程 IP,您将受到到服务器的总连接数的限制。
像这样的东西:
upstream myservice {
server 127.0.0.1:80;
server 123.123.123.123:80;
}
set $const 1;
limit_conn_zone $const zone=one:1m;
location / {
limit_conn one 10;
proxy_pass http://myservice;
proxy_set_header Host myservice;
}
Run Code Online (Sandbox Code Playgroud)
编辑:这个模块似乎只在更新版本的 nginx 中可用(可能 >=v1.1.8)。如果要使用此选项并拥有旧版本的 nginx,则可能需要从源代码编译。
编辑 2:如果您的 nginx 仅执行代理职责,请查看worker_connections
| 归档时间: |
|
| 查看次数: |
9158 次 |
| 最近记录: |