Nginx Upstream長鏈接由upstream模式下的keepalive指令控制,並指定可用於長鏈接的鏈接數,配置樣例以下:php
upstream http_backend {
server 127.0.0.1:8080;
keepalive 16;
}
server {
...
location /http/ {
proxy_pass http://http_backend;
proxy_http_version 1.1;
proxy_set_header Connection "";
...
}
}
目前Nginx只支持反向代理到upstream下配置的server,不支持直接由proxy_pass指令配置的server,更不支持proxy_pass參數中包含變量的狀況。此外,爲支持長鏈接,須要配置使用HTTP1.1協議(雖然HTTP 1.0可經過設置Connection請求頭爲「keep-alive」來實現長鏈接,但這並不推薦)。html
此外,因爲HTTPPROXY模塊默認會將反向代理請求的connection頭部設置成Close,所以這裏也須要清除connection頭部(清除頭部即不發送該頭部,在HTTP 1.0中默認爲長鏈接)。linux
問題:nginx與後端upstream下面的服務器創建的都是短連接。這樣nginx往upstream後端發請求時,也會消耗不少的時間與帶寬,若是讓nginx與upstream後端創建起長連接,從nginx發起的請求就能夠挑選一個合適的長連接發往upstream後端服務器,這樣便可以節省帶寬,也能夠提升響應速度。nginx
一、關於nginx upstream長連接的介紹及具體的實現方式後端
http://bollaxu.iteye.com/blog/900424服務器
二、使用nginx keepalive,網站TPS性能提高對比性能