设置fastcgi_pass和proxy_pass使用长连接
默认情况下,无论是fastcgi_pass还是proxy_pass,每个请求都会建立后端服务器建立一个连接,然后关掉,这样带来的问题是
- 每个连接都需要新建、关闭连接
- tcp产生大量time_wait
建立upstream
这个是fastcgi的例子,如果是http的则把端口改下就可以了
upstream fastcgi_backend {
server 127.0.0.1:9000;
keepalive 60;
}
fastcgi_pass
加入fastcgi_keep_conn on;
location ~ .*\.php$
{
fastcgi_pass fastcgi_backend;
fastcgi_keep_conn on;
}
proxy_pass
location ~ .*\.php$
{
# 清除"Connection"头部
proxy_set_header Connection "";
# 将http版本由1.0修改为1.1
proxy_http_version 1.1;
proxy_pass http://backend.server;
}
经过上面的优化,fastcgi和proxy的time_wait都可以由1000+下降到20+