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

Nginx 負載均衡是什么以及該如何配置

 更新時間:2021年01月29日 10:48:42   作者:雪山飛豬  
這篇文章主要介紹了Nginx 負載均衡是什么以及該如何配置,幫助大家更好的理解和使用Nginx服務器,感興趣的朋友可以了解下

什么是負載均衡

負載均衡主要通過專門的硬件設備或者通過軟件算法實現(xiàn)。通過硬件設備實現(xiàn)的負載均衡效果好、效率高、性能穩(wěn)定,但是成本比較高。通過軟件實現(xiàn)的負載均衡主要依賴于均衡算法的選擇和程序的健壯性。均衡算法也是多種多樣的,常見的有兩大類:即靜態(tài)負載均衡算法和動態(tài)負載均衡算法。靜態(tài)算法實現(xiàn)比較簡單,在一般網(wǎng)絡環(huán)境下也能達到比較好的效果,主要有一般輪詢算法、基于比率的加權輪詢算法以及基于優(yōu)先級的加權輪詢算法等。動態(tài)負載均衡算法在較為復雜的網(wǎng)絡環(huán)境中適應性更強,效果更好,主要有基于任務量的最少連接優(yōu)先算法、基于性能的最快響應優(yōu)先算法、預測算法及動態(tài)性能分配算法等。

網(wǎng)絡負載均衡技術的大致原理是利用一定的分配策略將網(wǎng)絡負載平衡地分攤到網(wǎng)絡集群的各個操作單元上,使得單個重負載任務能夠分擔到多個單元上并行處理,或者使得大量并發(fā)訪問或數(shù)據(jù) 流量分擔到多個單元上分別處理,從而減少用戶的等待響應時間。

Nginx服務器負載均衡配置

Nginx服務器實現(xiàn)了靜態(tài)的基于優(yōu)先級的加權輪詢算法,主要使用的配置是proxy_pass指令和upstream指令,這些內(nèi)容實際上很容易理解,關鍵點在于Nginx服務器的配置靈活多樣,如何在配置負載均衡的同時合理地整合其他功能,形成一套可以滿足實際需求的配置方案。

下面的有一些基礎示例片段,當然不可能將所有的配置情況包括在內(nèi),希望能夠起到拋磚引玉的效果,同時也需要大家在實際應用過程中多總結多積累。在配置中需要注意的地方將以注釋的形式添加。

配置實例一:對所有請求實現(xiàn)一般輪詢規(guī)則的負載均衡

     在以下實例片段中,backend服務器組中所有服務器的優(yōu)先級全部配置為默認的weight=1,這樣它們會按照一般輪詢策略依次接收請求任務。該配置是一個最簡單的實現(xiàn)Nginx服務器負載均衡的配置。所有訪問www.myweb.name 的請求都會在backend服務器組中實現(xiàn)負載均衡。實例代碼如下:

...
 
upstream backend                    #配置后端服務器組
{
    server 192.168.1.2:80;
    server 192.168.1.3:80;
    server 192.168.1.4:80;          #默認weight=1
}
server
{
    listen 80;
    server_name www.myweb.name;
    index index.html index.htm;
    location / {
        proxy_pass http://backend;
        prox_set_header Host $host;
    }
    ...
} 

配置實例二:對所有請求實現(xiàn)加權輪詢規(guī)則的負載均衡

    與“配置實例一”相比,在該實例片段中,backend服務器組中的服務器被賦予了不同的優(yōu)先級別,weight變量的值就是輪詢策略中的“權值”。其中,192.168.1.2:80的級別最高,優(yōu)先接收和處理客戶端請求;192.168.1.4:80的級別最低,是接收和處理客戶端請求最少的服務器,192.168.1.3:80將介于以上兩者之間。所有訪問www.myweb.name的請求都會在backend服務器組中實現(xiàn)加權負載均衡。實例代碼如下:

...
 
upstream backend                    #配置后端服務器組
{
    server 192.168.1.2:80 weight=5;
    server 192.168.1.3:80 weight=2;
    server 192.168.1.4:80;          #默認weight=1
}
server
{
    listen 80;
    server_name www.myweb.name;
    index index.html index.htm;
    location / {
        proxy_pass http://backend;
        prox_set_header Host $host;
    }
    ...
}

配置實例三:對特定資源實現(xiàn)負載均衡

在該實例片段中,我們設置了兩組被代理的服務器組,名為“videobackend”的一組用于對請求video資源的客戶端請求進行負載均衡,另一組用于對請求filed資源的客戶端請求進行負載均衡。所有對“http://www.mywebname/video/* ”的請求都會在videobackend服務器組中獲得均衡效果,所有對“http://www.mywebname/file/* ”的請求都會在filebackend服務器組中獲得均衡效果。該實例中展示的是實現(xiàn)一般負載均衡的配置,對于加權負載均衡的配置可以參考“配置實例二”。

    在location /file/ {......}塊中,我們將客戶端的真實信息分別填充到了請求頭中的“Host”、“X-Real-IP”和“X-Forwareded-For”頭域,這樣后端服務器組收到的請求中就保留了客戶端的真實信息,而不是Nginx服務器的信息。實例代碼如下:

...
 
upstream videobackend                    #配置后端服務器組1
{
    server 192.168.1.2:80;
    server 192.168.1.3:80;
    server 192.168.1.4:80;
}
upstream filebackend                    #配置后端服務器組2
{
    server 192.168.1.5:80;
    server 192.168.1.6:80;
    server 192.168.1.7:80;
}
server
{
    listen 80;
    server_name www.myweb.name;
    index index.html index.htm;
    location /video/ {
        proxy_pass http://videobackend; #使用后端服務器組1
        prox_set_header Host $host;
        ...
    }
    location /file/ {
        proxy_pass http://filebackend;  #使用后端服務器組2
                                        #保留客戶端的真實信息
        prox_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        ...
    }
}  

配置實例四:對不同域名實現(xiàn)負載均衡

在該實例片段中,我們設置了兩個虛擬服務器和兩組后端代理的服務器組,分別用來接收不同的域名請求和對這些請求進行負載均衡處理。如果客戶端請求域名為“home.myweb.name”,則服務器server1接收并轉向homebackend服務器組進行負載均衡處理;如果客戶端請求域名為“bbs.myweb.name”,則由服務器server2接收bbsbackend服務器級進行負載均衡處理。這樣就實現(xiàn)了對不同域名的負載均衡。

需要注意兩組后端服務器組中有一臺服務器server 192.168.1.4:80是公用的。在該服務器上需要部署兩個域名下的所有資源才能保證客戶端請求不會出現(xiàn)問題。實例代碼如下:

...
upstream bbsbackend                    #配置后端服務器組1
{
    server 192.168.1.2:80 weight=2;
    server 192.168.1.3:80 weight=2;
    server 192.168.1.4:80;
}
upstream homebackend                    #配置后端服務器組2
{
    server 192.168.1.4:80;
    server 192.168.1.5:80;
    server 192.168.1.6:80;
}
                                        #開始配置server 1
server
{
    listen 80;
    server_name home.myweb.name;
    index index.html index.htm;
    location / {
        proxy_pass http://homebackend;
        prox_set_header Host $host;
        ...
    }
    ...
}
                                        #開始配置server 2
server
{
    listen 80;
    server_name bbs.myweb.name;
    index index.html index.htm;
    location / {
        proxy_pass http://bbsbackend;
        prox_set_header Host $host;
        ...
    }
    ...
}

配置實例五:實現(xiàn)帶有URL重寫的負載均衡

    首先,我們來看具體的源碼,這是在實例一的基礎上做的修改:

...
upstream backend                    #配置后端服務器組
{
    server 192.168.1.2:80;
    server 192.168.1.3:80;
    server 192.168.1.4:80;          #默認weight=1
}
server
{
    listen 80;
    server_name www.myweb.name;
    index index.html index.htm;
     
    location /file/ {
        rewrite ^(/file/.*)/media/(.*)\.*$) $1/mp3/$2.mp3 last;
    }
     
    location / {
        proxy_pass http://backend;
        prox_set_header Host $host;
    }
    ...
}

該實例片段與“配置一”相比,增加了對URI包含“/file/”的URL重寫功能。例如客戶端請求的URL為“http://www.myweb.name/file/downlaod/media/1.mp3 ”時,該虛擬服務器首先使用location file/ {......}塊轉發(fā)到后端的backend服務器組中實現(xiàn)負載均衡。這樣,就車輕而易舉地實現(xiàn)了帶有URL重寫功能的負載均衡。在該配置方案中,一定要掌握清楚rewrite指令中l(wèi)ast標記和break標記的區(qū)別,才能達到預計的效果。

以上5個配置實例展示了Nginx服務器實現(xiàn)不同情況下負載均衡配置的基本方法。由于Nginx服務器的功能在結構上是增量式的,因此 ,我們可以在這些配置的基礎上繼續(xù)添加更多功能,比如Web緩存等功能,以及Gzip壓縮技術、身份認證、權限管理等。同時在使用upstream指令配置服務器組時,可以充分發(fā)揮各個指令的功能,配置出滿足需求、高效穩(wěn)定、功能豐富的Nginx服務器。

以上就是Nginx 負載均衡是什么以及該如何配置的詳細內(nèi)容,更多關于Nginx 負載均衡的資料請關注腳本之家其它相關文章!

相關文章

  • Nginx已編譯的nginx-添加新模塊

    Nginx已編譯的nginx-添加新模塊

    這篇文章主要介紹了Nginx已編譯的nginx-添加新模塊,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • 如何讓Nginx快速支持TLS1.3協(xié)議詳解

    如何讓Nginx快速支持TLS1.3協(xié)議詳解

    這篇文章主要給大家介紹了如何讓Nginx快速支持TLS1.3協(xié)議的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2018-04-04
  • 為Node.js程序配置使用Nginx服務器的簡明教程

    為Node.js程序配置使用Nginx服務器的簡明教程

    這篇文章主要介紹了為Node.js程序配置使用Nginx服務器的簡明教程,Nginx與Node自帶的服務器一樣都擁有非阻塞的高性能,需要的朋友可以參考下
    2016-01-01
  • Nginx的405 not allowed錯誤解決方法

    Nginx的405 not allowed錯誤解決方法

    本文主要介紹了Nginx的405 not allowed錯誤解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • nginx 讓users有權限啟動的兩種方法

    nginx 讓users有權限啟動的兩種方法

    這篇文章主要介紹了nginx 讓users有權限啟動兩種方法的相關資料,需要的朋友可以參考下
    2017-05-05
  • Nginx配置中if判斷的使用

    Nginx配置中if判斷的使用

    在Nginx配置中,有時rewrite規(guī)則無法滿足復雜邏輯判斷需求,這時需要使用if語法,if可以根據(jù)文件是否存在、路徑特定條件等進行判斷,本文就來介紹一下if判斷的使用
    2024-10-10
  • Nginx端口映射配置方法

    Nginx端口映射配置方法

    這篇文章主要介紹了Nginx端口映射配置方法和多端口映射,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • nginx proxy_pass反向代理配置中url后加不加/的區(qū)別介紹

    nginx proxy_pass反向代理配置中url后加不加/的區(qū)別介紹

    這篇文章主要給大家介紹了關于nginx proxy_pass反向代理配置中url后加不加/的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-11-11
  • Nginx部署SSL證書的過程

    Nginx部署SSL證書的過程

    SSL證書是數(shù)字證書的一種,類似于駕駛證、護照和營業(yè)執(zhí)照的電子副本,這篇文章主要介紹了Nginx部署SSL證書的相關知識,需要的朋友可以參考下
    2022-10-10
  • 關于nginx+php5.3.8+eclipse3.7工作空間的配置方法

    關于nginx+php5.3.8+eclipse3.7工作空間的配置方法

    以前用eclipse3.6時設置php服務器時完全可以在base url欄填寫自己工作空間的目錄,然后修改nginx.conf加一個alias就行了
    2011-11-11

最新評論

大邑县| 新蔡县| 衢州市| 沙田区| 宁安市| 安泽县| 鹤庆县| 郴州市| 连云港市| 永胜县| 阳春市| 浠水县| 石家庄市| 博乐市| 石嘴山市| 治县。| 星座| 含山县| 堆龙德庆县| 威远县| 类乌齐县| 儋州市| 澜沧| 栖霞市| 定远县| 砀山县| 郯城县| 通许县| 福建省| 普兰店市| 嘉荫县| 曲沃县| 望江县| 嘉兴市| 钟山县| 宜章县| 阿拉善右旗| 吉林市| 水城县| 石首市| 秭归县|