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

解讀nginx負載均衡的5種策略

 更新時間:2023年07月13日 10:01:14   作者:阿杰同學  
這篇文章主要介紹了解讀nginx負載均衡的5種策略,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

nginx負載均衡的5種策略

要理解負載均衡,必須先搞清楚正向代理和反向代理。

負載均衡的幾種常用方式

1、輪詢(默認)

每個請求按時間順序逐一分配到不同的后端服務器,如果后端服務器down掉,能自動剔除。

upstream backserver {
    server 192.168.0.14;
    server 192.168.0.15;
}

2、weight

指定輪詢幾率,weight和訪問比率成正比,用于后端服務器性能不均的情況。

upstream backserver {
    server 192.168.0.14 weight=3;
    server 192.168.0.15 weight=7;
}

權重越高,在被訪問的概率越大,如上例,分別是30%,70%。

3、ip_hash

上述方式存在一個問題就是說,在負載均衡系統(tǒng)中,假如用戶在某臺服務器上登錄了,那么該用戶第二次請求的時候,因為我們是負載均衡系統(tǒng),每次請求都會重新定位到服務器集群中的某一個,那么已經(jīng)登錄某一個服務器的用戶再重新定位到另一個服務器,其登錄信息將會丟失,這樣顯然是不妥的。

我們可以采用ip_hash指令解決這個問題,如果客戶已經(jīng)訪問了某個服務器,當用戶再次訪問時,會將該請求通過哈希算法,自動定位到該服務器。

每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個后端服務器,可以解決session的問題。

upstream backserver {
    ip_hash;
    server 192.168.0.14:88;
    server 192.168.0.15:80;
}

4、fair(第三方)

按后端服務器的響應時間來分配請求,響應時間短的優(yōu)先分配。

upstream backserver {
    server server1;
    server server2;
    fair;
}

5、url_hash(第三方)

按訪問url的hash結果來分配請求,使每個url定向到同一個(對應的)后端服務器,后端服務器為緩存時比較有效。

upstream backserver {
    server squid1:3128;
    server squid2:3128;
    hash $request_uri;
    hash_method crc32;
}

在需要使用負載均衡的server中增加

proxy_pass http://backserver/; 
upstream backserver{ 
    ip_hash; 
    server 127.0.0.1:9090 down; (down 表示單前的server暫時不參與負載) 
    server 127.0.0.1:8080 weight=2; (weight 默認為1.weight越大,負載的權重就越大) 
    server 127.0.0.1:6060; 
    server 127.0.0.1:7070 backup; (其它所有的非backup機器down或者忙的時候,請求backup機器) 
} 

max_fails :允許請求失敗的次數(shù)默認為

1.當超過最大次數(shù)時,返回proxy_next_upstream 模塊定義的錯誤

fail_timeout:max_fails次失敗后,暫停的時間

配置實例:

#user  nobody;
worker_processes  4;
events {
# 最大并發(fā)數(shù)
worker_connections  1024;
}
http{
    # 待選服務器列表
    upstream myproject{
        # ip_hash指令,將同一用戶引入同一服務器。
        ip_hash;
        server 125.219.42.4 fail_timeout=60s;
        server 172.31.2.183;
    }
    server{
        # 監(jiān)聽端口
        listen 80;
        # 根目錄下
        location / {
        # 選擇哪個服務器列表
            proxy_pass http://myproject;
        }
    }
}

負載均衡的五種策略是什么?

實行負載均衡的目的就是讓請求到達不同的服務器上。一次請求到服務器之間,有那么多環(huán)節(jié),因此可以實現(xiàn)的方法也有很多種。

負載均衡的五種策略

1、輪詢(默認)每個請求按時間順序逐一分配到不同的后端服務器,如果后端服務器down掉,能自動剔除。

2、指定權重,指定輪詢幾率,weight和訪問比率成正比,用于后端服務器性能不均的情況。

3、IP綁定 ip_hash,每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個后端服務器,可以解決session的問題。

4、fair(第三方)按后端服務器的響應時間來分配請求,響應時間短的優(yōu)先分配。

5、url_hash(第三方)按訪問url的hash結果來分配請求,使每個url定向到同一個后端服務器,后端服務器為緩存時比較有效。

負載均衡實現(xiàn)的方法

HTTP重定向負載均衡

HTTP重定向負載均衡有一臺重定向服務器,它也是一臺普通的服務器,其唯一的功能就是根據(jù)用戶的HTTP請求計算一臺應用集群中服務器的地址,并將此地址寫入HTTP重定向響應中返回給用戶。

這種方案實現(xiàn)起來簡單,但是需要瀏覽器請求兩次服務器才能完成。并且重定向服務器很容易編程瓶頸,因為一次重定向返回的過程,也是一次標準HTTP請求,如果集群內(nèi)有10臺機器,那HTTP重定向服務器的流量將是應用服務器的10倍,如果有100臺估計就宕機了,所以伸縮性能受到了很大限制。使用302響應碼重定向不利于網(wǎng)站SEO。

DNS域名解析負載均衡

這是利用DNS處理域名解析請求的同時進行負載均衡處理的一種方案。在DNS中配置多個A記錄,每次域名解析請求都會根據(jù)負載均衡算法計算一個不同的IP地址返回。

DNS域名解析負載均衡的優(yōu)點是將負載均衡的工作轉(zhuǎn)交給DNS,省掉了網(wǎng)站管理維護負載均衡服務器的麻煩,同時還可以使用智能DNS可以基于地理位置或者ISP來做域名解析,用戶將會得到距離最近或者速度最快的一個服務器地址,這樣可以加快用戶的訪問速度,改善性能。

但是這種方法也有很大的缺點,DNS是多級解析,每一級都會緩存DNS記錄,如果某個服務器變動了,DNS記錄更新的時間將會很長,這個速度取決于域名服務商。一般大型網(wǎng)站都會使用DNS域名解析,利用域名解析作為一級負載均衡手段。你可以使用 dig <域名> 的方法查看某個域名的A記錄,你會發(fā)現(xiàn)很多網(wǎng)站會有多條A記錄。

反向代理負載均衡

這種方法就是使用反向代理服務器,它一般在web服務器前面,這個位置也正好是負載均衡服務器的位置,所以大多數(shù)反向代理服務器同時也提供負載均衡的功能。由于web服務器不直接對外提供訪問,因此web服務器不需要使用外部IP,而反向代理服務器則需要配置雙網(wǎng)卡和內(nèi)部外部兩套IP地址。

反向代理服務器轉(zhuǎn)發(fā)請求是在HTTP協(xié)議層面,因此也叫應用層負載均衡,由于應用層在七層網(wǎng)絡模型中的第七層,所以一般也稱為七層負載均衡。優(yōu)點就是和反向代理功服務器功能集成在一起,部署簡單。缺點是反向代理服務器是所有請求和響應的中轉(zhuǎn)站,其性能可能會成為瓶頸。

網(wǎng)絡層負載均衡

這種方法是在網(wǎng)絡層通過修改請求目標地址進行負載均衡,網(wǎng)絡層在七層網(wǎng)絡層模型的第四層,所以也叫做四層負載均衡,也叫做IP層負載均衡。

請求達到負載均衡服務器后,由負載均衡服務器在操作系統(tǒng)內(nèi)核進程獲取網(wǎng)絡數(shù)據(jù)包,根據(jù)負載均衡算法得到一臺真實web服務器的地址,然后修改請求的目的地址到這臺真實的web服務器地址,等到web服務器處理完成后,響應數(shù)據(jù)包回到負載均衡服務器,再將數(shù)據(jù)包源地址修改為自身的IP(負載均衡服務器的IP)地址發(fā)送給用戶瀏覽器

這里關鍵在于真實無力web服務器響應數(shù)據(jù)包如何返回給負載均衡服務器。一種是源地址轉(zhuǎn)換(SNAT),第二種是負載均衡服務器作為網(wǎng)關服務器。網(wǎng)絡層的負載均衡在內(nèi)核進程完成數(shù)據(jù)轉(zhuǎn)發(fā),有更好的性能。但是由于響應請求的流量要經(jīng)過負載均衡服務器,容易成為瓶頸。

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • nginx反向代理二級域名綁定方法及注意事項

    nginx反向代理二級域名綁定方法及注意事項

    本文介紹了利用nginx實現(xiàn)多域名和多站點的綁定的方法及相關注意事項,需要的朋友可以參考下
    2018-04-04
  • nginx配置ipv6支持的實現(xiàn)示例

    nginx配置ipv6支持的實現(xiàn)示例

    本文主要介紹了nginx配置ipv6支持的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-12-12
  • Nginx可視化nginxWebUI的具體使用

    Nginx可視化nginxWebUI的具體使用

    NginxWebUI 是一款圖形化管理 nginx 配置的工具,可以使用網(wǎng)頁來快速配置 nginx單機與集群的各項功能,本文就來介紹一下Nginx網(wǎng)頁配置工具nginxWebUI的具體使用,感興趣的可以了解一下
    2023-08-08
  • Nginx大并發(fā)優(yōu)化實戰(zhàn)

    Nginx大并發(fā)優(yōu)化實戰(zhàn)

    這篇文章主要介紹了Nginx大并發(fā)優(yōu)化實戰(zhàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • nginx slice模塊的使用和源碼分析小結

    nginx slice模塊的使用和源碼分析小結

    很多請求都會去訪問一個巨大的文件,這個時候slice模塊就有了用武之地,本文主要介紹了nginx slice模塊的使用和源碼分析,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • Nginx修改默認錯誤頁面的代碼詳解

    Nginx修改默認錯誤頁面的代碼詳解

    Nginx默認的錯誤頁面非常簡單,只有一個純文本的提示,這對于用戶體驗不夠友好,特別是在面向終端用戶的服務中,一個美觀的錯誤頁面能夠大大提升產(chǎn)品的專業(yè)度,本文將介紹如何修改Nginx源碼,將默認的錯誤頁面替換為帶有CSS動畫效果的自定義HTML頁面,需要的朋友可以參考下
    2026-05-05
  • 很詳細的Nginx配置說明

    很詳細的Nginx配置說明

    這篇文章主要為大家分享了一篇很詳細的Nginx配置說明,主要內(nèi)容包括Nginx常用功能、Nginx配置文件結構,想要了解Nginx配置的朋友不要錯過,參考一下
    2016-02-02
  • Nginx http運行狀況健康檢查配置過程解析

    Nginx http運行狀況健康檢查配置過程解析

    這篇文章主要介紹了Nginx http運行狀況健康檢查配置過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • Nginx配置Vue項目Hash/History模式路由跳轉(zhuǎn)錯誤的解決方案

    Nginx配置Vue項目Hash/History模式路由跳轉(zhuǎn)錯誤的解決方案

    這篇文章主要為大家詳細介紹了Nginx配置Vue項目Hash/History模式路由跳轉(zhuǎn)錯誤的相關解決方案,文中的示例代碼講解詳細,需要的小伙伴可以了解下
    2025-09-09
  • nginx限制ip訪問頻率的實現(xiàn)示例

    nginx限制ip訪問頻率的實現(xiàn)示例

    Nginx通過limit_conn_zone 和 limit_req_zone對同一個IP地址進行限速限流,本文主要介紹了nginx限制ip訪問頻率的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07

最新評論

阿尔山市| 台北市| 兰西县| 洞头县| 汉源县| 徐州市| 新巴尔虎右旗| 呼伦贝尔市| 扎兰屯市| 海丰县| 顺平县| 武隆县| 稻城县| 双峰县| 定安县| 栖霞市| 东安县| 咸宁市| 尼玛县| 蕲春县| 鄂托克前旗| 宜昌市| 巴中市| 泰州市| 瑞金市| 板桥市| 胶州市| 东至县| 延边| 元阳县| 昂仁县| 陇川县| 辽源市| 台东县| 凭祥市| 保定市| 清远市| 什邡市| 巴彦淖尔市| 双流县| 长沙县|