最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解nginx upstream 配置和作用

 更新時(shí)間:2019年07月10日 14:41:48   作者:mood  
這篇文章主要介紹了詳解nginx upstream 配置和作用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

配置例子

upstream backend {
  server backend1.example.com    weight=5;
  server backend2.example.com:8080;
  server unix:/tmp/backend3;

  server backup1.example.com:8080  backup;
  server backup2.example.com:8080  backup;
}

server {
  location / {
    proxy_pass http://backend;
  }
}

指令

語(yǔ)法: upstream name { ... }
默認(rèn)值:
上下文: http

定義一組服務(wù)器。 這些服務(wù)器可以監(jiān)聽(tīng)不同的端口。 而且,監(jiān)聽(tīng)在TCP和UNIX域套接字的服務(wù)器可以混用。

例子:

upstream backend {
  server backend1.example.com weight=5;
  server 127.0.0.1:8080    max_fails=3 fail_timeout=30s;
  server unix:/tmp/backend3;
}

默認(rèn)情況下,nginx按加權(quán)輪轉(zhuǎn)的方式將請(qǐng)求分發(fā)到各服務(wù)器。 在上面的例子中,每7個(gè)請(qǐng)求會(huì)通過(guò)以下方式分發(fā): 5個(gè)請(qǐng)求分到backend1.example.com, 一個(gè)請(qǐng)求分到第二個(gè)服務(wù)器,一個(gè)請(qǐng)求分到第三個(gè)服務(wù)器。 與服務(wù)器通信的時(shí)候,如果出現(xiàn)錯(cuò)誤,請(qǐng)求會(huì)被傳給下一個(gè)服務(wù)器,直到所有可用的服務(wù)器都被嘗試過(guò)。 如果所有服務(wù)器都返回失敗,客戶端將會(huì)得到最后通信的那個(gè)服務(wù)器的(失?。╉憫?yīng)結(jié)果。

語(yǔ)法: server address [parameters];
默認(rèn)值:
上下文: upstream

定義服務(wù)器的地址address和其他參數(shù)parameters。 地址可以是域名或者IP地址,端口是可選的,或者是指定“unix:”前綴的UNIX域套接字的路徑。如果沒(méi)有指定端口,就使用80端口。 如果一個(gè)域名解析到多個(gè)IP,本質(zhì)上是定義了多個(gè)server。

你可以定義下面的參數(shù):weight=number設(shè)定服務(wù)器的權(quán)重,默認(rèn)是1。max_fails=number設(shè)定Nginx與服務(wù)器通信的嘗試失敗的次數(shù)。在fail_timeout參數(shù)定義的時(shí)間段內(nèi),如果失敗的次數(shù)達(dá)到此值,Nginx就認(rèn)為服務(wù)器不可用。在下一個(gè)fail_timeout時(shí)間段,服務(wù)器不會(huì)再被嘗試。 失敗的嘗試次數(shù)默認(rèn)是1。設(shè)為0就會(huì)停止統(tǒng)計(jì)嘗試次數(shù),認(rèn)為服務(wù)器是一直可用的。 你可以通過(guò)指令proxy_next_upstream、 fastcgi_next_upstream和memcached_next_upstream來(lái)配置什么是失敗的嘗試。 默認(rèn)配置時(shí),http_404狀態(tài)不被認(rèn)為是失敗的嘗試。fail_timeout=time設(shè)定

  • 統(tǒng)計(jì)失敗嘗試次數(shù)的時(shí)間段。在這段時(shí)間中,服務(wù)器失敗次數(shù)達(dá)到指定的嘗試次數(shù),服務(wù)器就被認(rèn)為不可用。
  • 服務(wù)器被認(rèn)為不可用的時(shí)間段。

默認(rèn)情況下,該超時(shí)時(shí)間是10秒。backup標(biāo)記為備用服務(wù)器。當(dāng)主服務(wù)器不可用以后,請(qǐng)求會(huì)被傳給這些服務(wù)器。down標(biāo)記服務(wù)器永久不可用,可以跟ip_hash指令一起使用。

Example:

upstream backend {
  server backend1.example.com   weight=5;
  server 127.0.0.1:8080      max_fails=3 fail_timeout=30s;
  server unix:/tmp/backend3;

  server backup1.example.com:8080 backup;
}

語(yǔ)法: ip_hash;
默認(rèn)值:
上下文: upstream

指定服務(wù)器組的負(fù)載均衡方法,請(qǐng)求基于客戶端的IP地址在服務(wù)器間進(jìn)行分發(fā)。 IPv4地址的前三個(gè)字節(jié)或者IPv6的整個(gè)地址,會(huì)被用來(lái)作為一個(gè)散列key。 這種方法可以確保從同一個(gè)客戶端過(guò)來(lái)的請(qǐng)求,會(huì)被傳給同一臺(tái)服務(wù)器。除了當(dāng)服務(wù)器被認(rèn)為不可用的時(shí)候,這些客戶端的請(qǐng)求會(huì)被傳給其他服務(wù)器,而且很有可能也是同一臺(tái)服務(wù)器。

從1.3.2和1.2.2版本開(kāi)始支持IPv6地址。

如果其中一個(gè)服務(wù)器想暫時(shí)移除,應(yīng)該加上down參數(shù)。這樣可以保留當(dāng)前客戶端IP地址散列分布。

例子:

upstream backend {
  ip_hash;

  server backend1.example.com;
  server backend2.example.com;
  server backend3.example.com down;
  server backend4.example.com;
}

從1.3.1和1.2.2版本開(kāi)始,ip_hash的負(fù)載均衡方法才支持設(shè)置服務(wù)器權(quán)重值。

語(yǔ)法: keepalive connections;
默認(rèn)值:
上下文: upstream

這個(gè)指令出現(xiàn)在版本 1.1.4.

激活對(duì)上游服務(wù)器的連接進(jìn)行緩存。

connections參數(shù)設(shè)置每個(gè)worker進(jìn)程與后端服務(wù)器保持連接的最大數(shù)量。這些保持的連接會(huì)被放入緩存。 如果連接數(shù)大于這個(gè)值時(shí),最久未使用的連接會(huì)被關(guān)閉。

需要注意的是,keepalive指令不會(huì)限制Nginx進(jìn)程與上游服務(wù)器的連接總數(shù)。 新的連接總會(huì)按需被創(chuàng)建。 connections參數(shù)應(yīng)該稍微設(shè)低一點(diǎn),以便上游服務(wù)器也能處理額外新進(jìn)來(lái)的連接。

配置memcached上游服務(wù)器連接keepalive的例子:

upstream memcached_backend {
  server 127.0.0.1:11211;
  server 10.0.0.2:11211;

  keepalive 32;
}

server {
  ...

  location /memcached/ {
    set $memcached_key $uri;
    memcached_pass memcached_backend;
  }

}

對(duì)于HTTP代理,proxy_http_version指令應(yīng)該設(shè)置為“1.1”,同時(shí)“Connection”頭的值也應(yīng)被清空。

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 "";
    ...
  }
}

另外一種選擇是,HTTP/1.0協(xié)議的持久連接也可以通過(guò)發(fā)送“Connection: Keep-Alive”頭來(lái)實(shí)現(xiàn)。不過(guò)不建議這樣用。

對(duì)于FastCGI的服務(wù)器,需要設(shè)置 fastcgi_keep_conn 指令來(lái)讓連接keepalive工作:

upstream fastcgi_backend {
  server 127.0.0.1:9000;

  keepalive 8;
}

server {
  ...

  location /fastcgi/ {
    fastcgi_pass fastcgi_backend;
    fastcgi_keep_conn on;
    ...
  }
}

當(dāng)使用的負(fù)載均衡方法不是默認(rèn)的輪轉(zhuǎn)法時(shí),必須在keepalive 指令之前配置。

針對(duì)SCGI和uwsgi協(xié)議,還沒(méi)有實(shí)現(xiàn)其keepalive連接的打算。

語(yǔ)法: least_conn;
默認(rèn)值:
上下文: upstream

這個(gè)指令出現(xiàn)在版本 1.3.1 和 1.2.2.

指定服務(wù)器組的負(fù)載均衡方法,根據(jù)其權(quán)重值,將請(qǐng)求發(fā)送到活躍連接數(shù)最少的那臺(tái)服務(wù)器。 如果這樣的服務(wù)器有多臺(tái),那就采取有權(quán)重的輪轉(zhuǎn)法進(jìn)行嘗試。

嵌入的變量

ngx_http_upstream_module模塊支持以下嵌入變量:

$upstream_addr保存服務(wù)器的IP地址和端口或者是UNIX域套接字的路徑。 在請(qǐng)求處理過(guò)程中,如果有多臺(tái)服務(wù)器被嘗試了,它們的地址會(huì)被拼接起來(lái),以逗號(hào)隔開(kāi),比如: “192.168.1.1:80, 192.168.1.2:80, unix:/tmp/sock”。 如果在服務(wù)器之間通過(guò)“X-Accel-Redirect”頭或者error_page有內(nèi)部跳轉(zhuǎn),那么這些服務(wù)器組之間會(huì)以冒號(hào)隔開(kāi),比如:“192.168.1.1:80, 192.168.1.2:80, unix:/tmp/sock : 192.168.10.1:80, 192.168.10.2:80”。$upstream_response_time以毫秒的精度保留服務(wù)器的響應(yīng)時(shí)間,(輸出)單位是秒。 出現(xiàn)多個(gè)響應(yīng)時(shí),也是以逗號(hào)和冒號(hào)隔開(kāi)。$upstream_status保存服務(wù)器的響應(yīng)代碼。 出現(xiàn)多個(gè)響應(yīng)時(shí),也是以逗號(hào)和冒號(hào)隔開(kāi)。$upstream_http_...保存服務(wù)器的響應(yīng)頭的值。比如“Server”響應(yīng)頭的值可以通過(guò)$upstream_http_server變量來(lái)獲取。 需要注意的是只有最后一個(gè)響應(yīng)的頭會(huì)被保留下來(lái)。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • nginx設(shè)置資源請(qǐng)求目錄的方式詳解

    nginx設(shè)置資源請(qǐng)求目錄的方式詳解

    最近有一個(gè)需求.就是url指定路徑下訪問(wèn)服務(wù)器的靜態(tài)資源,這篇文章主要給大家介紹了關(guān)于nginx設(shè)置資源請(qǐng)求目錄的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • 使用nginx+lua進(jìn)行token鑒權(quán)的方法

    使用nginx+lua進(jìn)行token鑒權(quán)的方法

    使用nginx和lua腳本實(shí)現(xiàn)對(duì)Minio服務(wù)器圖片鏈接的token鑒權(quán),通過(guò)反向代理隱藏真實(shí)IP,增強(qiáng)安全性,介紹了整個(gè)鑒權(quán)流程,包括nginx配置和lua腳本的具體實(shí)現(xiàn),適用于需要保護(hù)圖片不被未授權(quán)訪問(wèn)的場(chǎng)景
    2022-05-05
  • nginx日志格式分析以及修改詳解

    nginx日志格式分析以及修改詳解

    Nginx日志對(duì)于統(tǒng)計(jì)、系統(tǒng)服務(wù)排錯(cuò)很有用,下面這篇文章主要給大家介紹了關(guān)于nginx日志格式分析以及修改的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • 一文搞懂Nginx限流(簡(jiǎn)單實(shí)現(xiàn))

    一文搞懂Nginx限流(簡(jiǎn)單實(shí)現(xiàn))

    這篇文章主要介紹了一文搞懂Nginx限流(簡(jiǎn)單實(shí)現(xiàn)),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-05-05
  • Nginx構(gòu)建Tomcat集群的操作方法

    Nginx構(gòu)建Tomcat集群的操作方法

    nginx是一款自由的、開(kāi)源的、高性能的HTTP服務(wù)器和反向代理服務(wù)器;同時(shí)也是一個(gè)IMAP、POP3、SMTP代理服務(wù)器,這篇文章主要介紹了Nginx構(gòu)建Tomcat集群的問(wèn)題,需要的朋友可以參考下
    2022-01-01
  • 開(kāi)發(fā)環(huán)境服務(wù)器vs生產(chǎn)環(huán)境服務(wù)器:開(kāi)發(fā)與生產(chǎn)須分明詳解

    開(kāi)發(fā)環(huán)境服務(wù)器vs生產(chǎn)環(huán)境服務(wù)器:開(kāi)發(fā)與生產(chǎn)須分明詳解

    開(kāi)發(fā)環(huán)境服務(wù)器(如Vite)和生產(chǎn)環(huán)境服務(wù)器(如Nginx和Node.js)在職責(zé)和工作方式上存在顯著差異,開(kāi)發(fā)環(huán)境服務(wù)器專注于快速開(kāi)發(fā)和調(diào)試,而生產(chǎn)環(huán)境服務(wù)器則強(qiáng)調(diào)穩(wěn)定性和高并發(fā)處理,Vite適合開(kāi)發(fā)環(huán)境,而Nginx和Node.js更適合生產(chǎn)環(huán)境
    2025-01-01
  • nginx+lua+redis實(shí)現(xiàn)降級(jí)的示例代碼

    nginx+lua+redis實(shí)現(xiàn)降級(jí)的示例代碼

    隨著用戶訪問(wèn)量的激增,網(wǎng)站或電商平臺(tái)可能會(huì)面臨系統(tǒng)超負(fù)載的問(wèn)題,導(dǎo)致注冊(cè)、下單、支付等功能出現(xiàn)問(wèn)題,為保障核心服務(wù)的高可用性,可以采用降級(jí)策略,本文就來(lái)介紹一下nginx+lua+redis降級(jí),感興趣的可以了解學(xué)習(xí)
    2024-10-10
  • Nginx源碼編譯安裝全過(guò)程

    Nginx源碼編譯安裝全過(guò)程

    Nginx是一個(gè)高性能的HTTP和反向代理服務(wù)器,具有異步非阻塞機(jī)制和輕量級(jí)的特點(diǎn),它適用于多種場(chǎng)景,如Web網(wǎng)站服務(wù)、虛擬主機(jī)、反向代理、負(fù)載均衡和Web緩存服務(wù)器,Nginx的配置簡(jiǎn)潔,使用方便,具有較高的穩(wěn)定性和抗并發(fā)能力
    2026-01-01
  • nginx https反向代理tomcat的2種實(shí)現(xiàn)方法

    nginx https反向代理tomcat的2種實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于nginx https反向代理tomcat的2種實(shí)現(xiàn)方法,第一種方法是nginx配置https,tomcat也配置https,第二種方法是nginx采用https,tomcat采用http,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。
    2017-12-12
  • nginx優(yōu)化與防盜鏈配置過(guò)程

    nginx優(yōu)化與防盜鏈配置過(guò)程

    本文介紹了Nginx配置的最佳實(shí)踐,包括隱藏版本號(hào)、分割日志文件、啟用壓縮、圖片緩存、并發(fā)設(shè)置以及優(yōu)化其他配置
    2026-03-03

最新評(píng)論

墨玉县| 奈曼旗| 宁陵县| 隆德县| 阳新县| 搜索| 固安县| 玉山县| 上高县| 海林市| 井陉县| 威远县| 南昌县| 临猗县| 泸水县| 新邵县| 建宁县| 禄丰县| 宜城市| 定边县| 阳山县| 玛沁县| 卢氏县| 和硕县| 南澳县| 墨竹工卡县| 九江县| 马关县| 多伦县| 鄱阳县| 紫金县| 乌鲁木齐市| 金湖县| 连云港市| 宝鸡市| 平凉市| 含山县| 咸宁市| 内江市| 德江县| 皋兰县|