默認情況下,無論是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+