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

主要参考

posted @ 2016-04-21 16:36  天涯逐梦  阅读(2934)  评论(0编辑  收藏  举报