寻觅生命中的那一片浅草......

设置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+

主要参考

2024年四月
« 5月    
1234567
891011121314
15161718192021
22232425262728
2930