Nginx Performance

关键参数

Max Conection

最大连接数 = worker num * worker_connections, 默认worker_connections是1024

keepalive

Http协议从 1.1 版本开始,在未特殊声明的情况下,都默认建立持久连接(长连接),所以我们需要确认服务端是否正确配置支持持久化连接了。尤其Nginx向后台web服务器转发请求时,因为频繁的创建销毁连接不仅消耗 CPU,也增加延迟,如果Https协议,那成本就尤为明显。

Nginx配置方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
upstream http_backend {
server 127.0.0.1:8080;
keepalive 16;
}

server {
...
location /http/ {
proxy_pass http://http_backend;
proxy_http_version 1.1;
proxy_set_header Connection "";
...
}
}

proxy_pass 需搭配“proxy_http_version 1.1”,“proxy_set_header Connection”两个配置项。

表示在代理外部请求到上游服务器时,忽略原始请求的关于Connection头的设置,且重新以 Http 1.1协议版本(因为该版本是默认支持Keep-Alive的)转发给应用服务器端。

  • 参考链接

https://luyiisme.github.io/2017/02/12/reverseproxy/