g.f*_*err 3 nginx nginx-location
环境:Nginx 1.14.0(见dockerfile更多细节)。
要限制
服务器中特定位置的并发连接数,可以使用两种方法 - limit_conn(所有 ips 的第三个示例)
和上游 max_conns。
这两种方法的工作方式有区别吗?
有人可以解释或参考解释吗?
使用上游 max_conns 进行限制的示例:
http {
upstream foo{
zone upstream_foo 32m;
server some-ip:8080 max_conns=100;
}
server {
listen 80;
server_name localhost;
location /some_path {
proxy_pass http://foo/some_path;
return 429;
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用 limit_conn 进行限制:
http {
limit_conn_zone $server_name zone=perserver:32m;
server {
listen 80;
server_name localhost;
location /some_path {
proxy_pass http://some-ip:8080/some_path;
limit_conn perserver 100;
limit_conn_status 429;
}
}
}
Run Code Online (Sandbox Code Playgroud)
upstream max_conns是从nginx服务器到上游代理服务器的连接数。max_conns更重要的是确保后端服务器不会过载。假设您有 5 个nginx可以发送到的服务器的上游。也许一个功能不足,所以你限制了它的连接总数以防止它过载。
limit_conn是nginx从客户端到服务器的连接数,用于限制对nginx服务器的请求的滥用。例如,您可以说对于一个位置,IP 在最大化之前只能有 10 个打开的连接。
| 归档时间: |
|
| 查看次数: |
3124 次 |
| 最近记录: |