国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【nginx網站性能優化篇(3)】反向代理實現負載均衡

xi4oh4o / 1190人閱讀

摘要:注意本篇文章為負載均衡的理論篇后續找個機會推出實戰篇。理論篇主要講述如何配置負載均衡配置負載均衡不難。常用的狀態有,表示當前的暫時不參與負載均衡。注,當負載調度算法為時,后端服務器在負載均衡調度中的狀態不能是和。

注意,本篇文章為負載均衡的理論篇,后續找個機會推出實戰篇。理論篇主要講述如何配置負載均衡,配置負載均衡不難。但實戰中要要注意幾個點,比如如何做到多服務器之間的數據共享(session,file等),多cache服務器如何做到命中率高等等問題

上一篇文章中我們通過反向代理了后端一臺服務器,但隨著網站訪問的人越來越多一臺服務器實在是頂不住,于是我們加了多臺服務器,那么多臺服務器又怎么配置代理呢?

upstream test.com{
# ip_hash;
server 192.168.10.13:80;
server 192.168.10.14:80  down;
server 192.168.10.15:8009  max_fails=3  fail_timeout=20s;
server 192.168.10.16:8080;
}
server {
  location / {
    proxy_pass  http://test.com;
  }
}

實際上負載均衡也是通過反向代理的方式,但是proxy_pass只能寫一個地址,所以我們把某些地址通過upstream作為一個集合來做反向代理就實現了負載均衡;

upstream 負載均衡模塊說明

upstream是Nginx的HTTP Upstream模塊,這個模塊通過一個簡單的調度算法來實現客戶端IP到后端服務器的負載均衡。在上面的設定中,通過upstream指令指定了一個負載均衡器的名稱test.com。這個名稱可以任意指定,在后面需要用到的地方直接調用即可。

支持的負載均衡算法

Nginx的負載均衡模塊目前支持4種調度算法,下面進行分別介紹,其中后兩項屬于第三方調度算法。

輪詢(默認)。每個請求按時間順序逐一分配到不同的后端服務器,如果后端某臺服務器宕機,故障系統被自動剔除,使用戶訪問不受影響。Weight 指定輪詢權值,Weight值越大,分配到的訪問機率越高,主要用于后端每個服務器性能不均的情況下

ip_hash。每個請求按訪問IP的hash結果分配,這樣來自同一個IP的訪客固定訪問一個后端服務器,有效解決了動態網頁存在的session共享問題。

fair。這是比上面兩個更加智能的負載均衡算法。此種算法可以依據頁面大小和加載時間長短智能地進行負載均衡,也就是根據后端服務器的響應時間來分配請求,響應時間短的優先分配。Nginx本身是不支持fair的,如果需要使用這種調度算法,必須下載Nginx的upstream_fair模塊。

url_hash。此方法按訪問url的hash結果來分配請求,使每個url定向到同一個后端服務器,可以進一步提高后端緩存服務器的效率。Nginx本身是不支持url_hash的,如果需要使用這種調度算法,必須安裝Nginx的hash軟件包

支持的狀態參數

在HTTP Upstream模塊中,可以通過server指令指定后端服務器的IP地址和端口,同時還可以設定每個后端服務器在負載均衡調度中的狀態。常用的狀態有:

down,表示當前的server暫時不參與負載均衡。

backup,預留的備份機器。當其他所有的非backup機器出現故障或者忙的時候,才會請求backup機器,因此這臺機器的壓力最輕。

max_fails,允許請求失敗的次數,默認為1。當超過最大次數時,返回proxy_next_upstream 模塊定義的錯誤。

fail_timeout,在經歷了max_fails次失敗后,暫停服務的時間。max_fails可以和fail_timeout一起使用。

注,當負載調度算法為ip_hash時,后端服務器在負載均衡調度中的狀態不能是weight和backup。

配置負載均衡

upstream webservers {
      server 192.168.18.201 weight=1;
      server 192.168.18.202 weight=1;
  }
  server {
      listen       80;
      server_name  localhost;
      #charset koi8-r;
      #access_log  logs/host.access.log  main;
      location / {
              proxy_pass      http://webservers;
              proxy_set_header  X-Real-IP  $remote_addr;
      }
}

注,upstream是定義在server{ }之外的,不能定義在server{ }內部。定義好upstream之后,用proxy_pass引用一下即可。
如果定義在server內部就會報錯:

"upstream" directive is not allowed here in xxxxxx

重啟以后不斷刷新208就會發現,是201和202的內容交替出現,然后分別查看其日志,達到了負載均衡輪詢的效果;

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/40494.html

相關文章

  • 5個提高Node.js應用性能的技巧

    摘要:如果你有一個高流量的站點,提高性能的第一步是在你的前面放一個反向代理服務器。使用在一個已經存在的服務器前做反向代理,作為的一個核心應用,已經被用于全世界成千上萬的站點中。 如果你的 node 服務器前面沒有 nginx, 那么你可能做錯了。— Bryan Hughes Node.js 是使用 最流行的語言— JavaScript 構建服務器端應用的領先工具 。由于可以同時提供 web ...

    k00baa 評論0 收藏0
  • 利用 NGINX 最大化 Python 性能,第二部分:負載均衡和監控

    摘要:現有的服務器和應用程序服務器相結合并在一個冒泡中運行,無法直接接觸網絡流量,由反向代理服務器提出填鴨式請求。賦予高可用性讓你的反向代理服務器鏡像到在線備份,同時擁有備用的應用程序服務器,讓你的站點高度可用。 【編者按】本文主要介紹 NGINX 的主要功能以及如何通過 Nginx 優化 Python 應用性能。本文系國內 ITOM 管理平臺 OneAPM 編譯呈現。 本文上一篇系: 利用...

    zhangrxiang 評論0 收藏0
  • 利用 NGINX 最大化 Python 性能,第二部分:負載均衡和監控

    摘要:現有的服務器和應用程序服務器相結合并在一個冒泡中運行,無法直接接觸網絡流量,由反向代理服務器提出填鴨式請求。賦予高可用性讓你的反向代理服務器鏡像到在線備份,同時擁有備用的應用程序服務器,讓你的站點高度可用。 【編者按】本文主要介紹 NGINX 的主要功能以及如何通過 Nginx 優化 Python 應用性能。本文系國內 ITOM 管理平臺 OneAPM 編譯呈現。 本文上一篇系: 利用...

    Snailclimb 評論0 收藏0

發表評論

0條評論

xi4oh4o

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<