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

主要參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM