Nginx Upstream Keepalive 分析 保持長連接


Nginx Upstream長連接由upstream模式下的keepalive指令控制,並指定可用於長連接的連接數,配置樣例如下:

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”來實現長連接,但這並不推薦)。

此外,由於HTTPPROXY模塊默認會將反向代理請求的connection頭部設置成Close,因此這里也需要清除connection頭部(清除頭部即不發送該頭部,在HTTP 1.0中默認為長連接)。

 

 

問題:nginx與后端upstream下面的服務器建立的都是短鏈接。這樣nginx往upstream后端發請求時,也會消耗很多的時間與帶寬,如果讓nginx與upstream后端建立起長鏈接,從nginx發起的請求就可以挑選一個合適的長鏈接發往upstream后端服務器,這樣即可以節省帶寬,也可以提高響應速度。

 

1、關於nginx upstream長鏈接的介紹及具體的實現方式

http://bollaxu.iteye.com/blog/900424

 

 

2、使用nginx keepalive,網站TPS性能提升對比

http://sohulinux.blog.sohu.com/180744817.html


免責聲明!

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



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