欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nginx中keepalive配置小結(jié)

 更新時(shí)間:2023年09月20日 09:15:44   作者:一個(gè)風(fēng)輕云淡  
本文介紹了Nginx keepalive配置的概念和作用,闡述了keepalive連接的基本原理和優(yōu)勢(shì),并給出了一些常用的配置示例,具有一定的參考價(jià)值,感興趣的可以了解一下

keepalive基礎(chǔ)介紹

keepalive是HTTP/1.1協(xié)議中的一個(gè)特性,它允許客戶端和服務(wù)器之間的TCP連接在一個(gè)HTTP請(qǐng)求/響應(yīng)周期結(jié)束后保持打開狀態(tài),以便在后續(xù)的請(qǐng)求中重復(fù)使用。這樣可以減少TCP連接的建立和關(guān)閉次數(shù),從而提高性能。

(注意:keepalive是tcp層長(zhǎng)連接探活機(jī)制;keep-alive是應(yīng)用層http協(xié)議使用,在其頭部Connection字段中的一個(gè)值,只是代表客戶端與服務(wù)之間需要保持長(zhǎng)連接,可以理解為通過(guò)此字段來(lái)告訴nginx此連接需要維持長(zhǎng)連接,處理完別直接關(guān)閉連接。) 

  • 連接維護(hù):keepalive會(huì)維護(hù)長(zhǎng)連接,并在連接超時(shí)時(shí)間內(nèi)重新連接,以確保服務(wù)器端始終處于運(yùn)行狀態(tài)。
  • 提高效率:通過(guò)維護(hù)長(zhǎng)連接,可以減少建立和關(guān)閉連接所需的時(shí)間,從而提高服務(wù)器的效率。
  • 節(jié)省帶寬:由于keepalive可以維護(hù)長(zhǎng)連接,因此減少了建立和關(guān)閉連接所需的網(wǎng)絡(luò)流量,從而節(jié)省了帶寬。
  • 穩(wěn)定性:通過(guò)心跳包維護(hù)連接,可以確保服務(wù)器端始終處于運(yùn)行狀態(tài),從而提高了網(wǎng)站的穩(wěn)定性和可用性。

為什么使用HTTPs長(zhǎng)連接技術(shù)?

  • 對(duì)響應(yīng)時(shí)間要求較高;
  • 服務(wù)走的是公網(wǎng),客戶端與服務(wù)端的TCP建立的三次握手和斷開的四次揮手都需要40ms左右(真實(shí)數(shù)據(jù)包計(jì)算出來(lái)的),共需要80ms左右;
  • 每個(gè)接入方使用的IP就若干個(gè),需要建立的請(qǐng)求連接有限。
  • 使用長(zhǎng)連接技術(shù),可以大幅減少TCP頻繁握手的次數(shù),極大提高響應(yīng)時(shí)間;同時(shí),即使使用長(zhǎng)連接技術(shù),也不需要消耗很多的系統(tǒng)資源用來(lái)緩存sockets會(huì)話信息。 
http {
upstream backend {
  server 192.168.0.1:8080 weight=1 max_fails=2 fail_timeout=30s;
  server 192.168.0.2:8080 weight=1 max_fails=2 fail_timeout=30s;
  keepalive 300;      
}  
server {
  listen 8080 default_server;
  server_name "";
location / {
  proxy_pass http://backend;
  proxy_http_version 1.1;                   #設(shè)置http版本為1.1
  proxy_set_header Connection "";           #設(shè)置Connection為長(zhǎng)連接(默認(rèn)為no)
  }
}

 HTTP 協(xié)議中對(duì)長(zhǎng)連接的支持是從 1.1 版本之后才有的,因此最好通過(guò) proxy_http_version 指令設(shè)置為 1.1。HTTP1.0不支持keepalive特性,當(dāng)沒(méi)有使用HTTP1.1的時(shí)候,后端服務(wù)會(huì)返回101錯(cuò)誤,然后斷開連接。而 "Connection" header 可以選擇被清理,這樣即便是 Client 和 Nginx 之間是短連接,Nginx 和 upstream 之間也是可以開啟長(zhǎng)連接的。這種情況下必須清理來(lái)自 Client 請(qǐng)求中的 “Connection” header。

要想做到Client與Nginx之間保持長(zhǎng)連接,需要:

  • -  Client發(fā)送過(guò)來(lái)的HTTP請(qǐng)求要求攜帶"keep-alive"header。
  • -  Nginx設(shè)置支持keepalive 

Nginx中的keepalive配置項(xiàng)

keepalive_timeout  

Nginx 使用 keepalive_timeout 來(lái)指定 KeepAlive 的超時(shí)時(shí)間(timeout),指定每個(gè) TCP 連接最多可以保持多長(zhǎng)時(shí)間。Nginx 的默認(rèn)值是 75 秒,有些瀏覽器最多只保持 60 秒,所以可以設(shè)定為 60 秒。若將它設(shè)置為 0,就禁止了 keepalive 連接。

#?可用于?http,?server,?location?配置塊
#?設(shè)置?TCP?鏈接保持?60?秒
keepalive_timeout?60s;

send_timeout 

服務(wù)端向客戶端傳輸數(shù)據(jù)的超時(shí)時(shí)間。這個(gè)設(shè)置不會(huì)用于整個(gè)轉(zhuǎn)發(fā)器,而是在兩次客戶端讀取操作之間。如果在這段時(shí)間內(nèi),客戶端沒(méi)有讀取任何數(shù)據(jù),Nginx就會(huì)關(guān)閉連接。

# 配置段: http, server, location
send_timeout 30s;

keepalive_request

keepalive_requests:默認(rèn)100,某個(gè)長(zhǎng)連接連續(xù)處理請(qǐng)求次數(shù)限制,超過(guò)次數(shù)則該長(zhǎng)連接被關(guān)閉;如果需要釋放某個(gè)連接占用的內(nèi)存,必須關(guān)閉該鏈接,內(nèi)存不大的情況下,不建議開大該配置;在QPS較高的場(chǎng)景,則有必要加大這個(gè)參數(shù)

# 配置段: http, server, location  
keepalive_request 10000;

應(yīng)用場(chǎng)景

什么時(shí)候使用?

明顯的預(yù)知用戶會(huì)在當(dāng)前連接上有下一步操作 復(fù)用連接,有效減少握手次數(shù),尤其是https建立一次連接開銷會(huì)更大

什么時(shí)候不用?

訪問(wèn)內(nèi)聯(lián)資源一般用緩存,不需要keepalive 長(zhǎng)時(shí)間的tcp連接容易導(dǎo)致系統(tǒng)資源無(wú)效占用

到此這篇關(guān)于Nginx中keepalive配置小結(jié)的文章就介紹到這了,更多相關(guān)Nginx keepalive配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Nginx出現(xiàn)403?Forbidden的幾種簡(jiǎn)單解決方式

    Nginx出現(xiàn)403?Forbidden的幾種簡(jiǎn)單解決方式

    這篇文章主要介紹了Nginx出現(xiàn)403?Forbidden的幾種解決思路,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Nginx的405 not allowed錯(cuò)誤解決方法

    Nginx的405 not allowed錯(cuò)誤解決方法

    本文主要介紹了Nginx的405 not allowed錯(cuò)誤解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • nginx下部署vue項(xiàng)目的方法步驟

    nginx下部署vue項(xiàng)目的方法步驟

    這篇文章主要介紹了nginx下部署vue項(xiàng)目的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Nginx實(shí)現(xiàn)http自動(dòng)跳轉(zhuǎn)到https

    Nginx實(shí)現(xiàn)http自動(dòng)跳轉(zhuǎn)到https

    本文主要介紹了Nginx實(shí)現(xiàn)http自動(dòng)跳轉(zhuǎn)到https,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • 在Nginx瀏覽器中打開目錄瀏覽功能

    在Nginx瀏覽器中打開目錄瀏覽功能

    這篇文章主要介紹了在Nginx瀏覽器中打開目錄瀏覽功能,Nginx的目錄瀏覽功能默認(rèn)情況下被關(guān)閉需要手動(dòng)打開,需要的朋友可以參考下
    2015-07-07
  • 在nginx中配置pathinfo模式支持thinkphp的URL重寫

    在nginx中配置pathinfo模式支持thinkphp的URL重寫

    這篇文章主要介紹了在nginx中配置pathinfo模式的例子,用來(lái)支持thinkphp的URL重寫,并解決了thinkphp一個(gè)路徑問(wèn)題,需要的朋友可以參考下
    2014-04-04
  • Nginx部署多個(gè)vue項(xiàng)目的方法步驟

    Nginx部署多個(gè)vue項(xiàng)目的方法步驟

    本文主要介紹了Nginx部署多個(gè)vue項(xiàng)目的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 讓Nginx支持shtml格式的配置方法

    讓Nginx支持shtml格式的配置方法

    這篇文章主要介紹了讓Nginx支持shtml格式的配置方法,shtml格式可以包含一些服務(wù)端指令,同PHP中的include功能類似,需要的朋友可以參考下
    2014-08-08
  • 利用Nginx反向代理解決跨域問(wèn)題詳解

    利用Nginx反向代理解決跨域問(wèn)題詳解

    這篇文章主要介紹了利用Nginx反向代理解決跨域問(wèn)題詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • nginx fair負(fù)載均衡方式使用詳解

    nginx fair負(fù)載均衡方式使用詳解

    本文主要介紹了nginx fair負(fù)載均衡方式使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08

最新評(píng)論