preface
nginx在反向代理HTTP協議的時候,默認使用的是HTTP1.0去向后端服務器獲取響應的內容后在返回給客戶端。
HTTP1.0和HTTP1.1的一個不同之處就是,HTTP1.0不支持HTTP keep-alive。nginx在后端服務器請求時使用了HTTP1.0同時使用HTTP Header的Connection:Close通知后端服務器主動關閉連接。這樣會導致任何一個客戶端的請求都在后端服務器上產生了一個TIME-WAIT狀態的連接。所以我們需要在Nginx上啟用HTTP1.1的向后端發送請求,同時支持Keep-alive。
配置HTTP1.1
http{
''' 省去其他的配置
upstream www{
keepalive 50; # 必須配置,建議50-100之間
'''
}
server {
'''省去其他的配置
location / {
proxy_http_version 1.1; # 后端配置支持HTTP1.1,必須配
proxy_set_header Connection ""; # 后端配置支持HTTP1.1 ,必須配置。
}
'''
}
'''
}
我們增加三個參數keepalive 50,proxy_http_version 1.1 , proxy_set_header Connection 來配置。