nginx 實現負載均衡

2021-10-09 04:33:12 字數 2125 閱讀 2379

這裡引用知乎上的一篇文章

簡單的來講:

當一台伺服器的一定時間內的訪問量越大時,伺服器壓力就越大,大到超過其承受能力時,伺服器就會罷工。為了避免伺服器罷工,讓使用者有更好的體驗,我們可以建立多台伺服器方式,組成乙個集群。當使用者訪問時,先訪問乙個中間伺服器,中間伺服器在伺服器集群中選擇乙個壓力較小的伺服器,然後將該訪問請求引入該伺服器,如此以來,保證伺服器集群中的每個伺服器壓力趨於平衡,分擔了伺服器壓力,避免了伺服器罷工的情況。這種方式就叫負載均衡

負載均衡是用反向** (**伺服器)

正向**是**使用者

1、輪詢(預設)

upstream backserver
每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器掛掉,能自動剔除。

2、weight 權重

指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的情況

以下兩個機率分別是 20% 30%

weight 預設為 1

upstream backserver
3、ip_hash

每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問乙個後端伺服器,解決session的問題。

相當於使用者繫結指定的伺服器(在使用者ip不變的情況下)

upstream backserver
4、fair

根據頁面大小、載入時間長短智慧型的進行負載均衡(根據後端響應時間)

fair 不是 nginx 內建的負載均衡演算法

upstream backserver
5、url_hash

根據每次請求的url位址,hash後訪問到固定的伺服器節點。

一般來講,要用到url_hash,是要配合快取命中來使用。

upstream backserver
示例

}# 訪問日誌

access_log /www/wwwlogs/www.demo.com.log;

# 錯誤日誌

error_log /www/wwwlogs/www.demo.com.error.log;

}}附 php 部分

)] -> 來訪客戶端ip: "

.$request

->

header

['x-real-ip'].

"\n"

;$response

->

status

(200);

$response

->

end(

'1');}

);$server

->

start()

;?>

Nginx實現負載均衡

負載均衡 建立在現有網路結構之上,它提供了一種廉價有效透明的方法擴充套件網路裝置和伺服器的頻寬 增加吞吐量 加強網路資料處理能力 提高網路的靈活性和可用性。負載均衡,英文名稱為load balance,其意思就是分攤到多個操作單元上進行執行,例如web伺服器 ftp伺服器 企業關鍵應用伺服器和其它關...

nginx實現負載均衡

目錄結構 conf 配置目錄 html 靜態頁面目錄 logs 日誌目錄 sbin 主程式 nginx支援的負載均衡方式 輪詢 預設 每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。weight 指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的...

nginx實現負載均衡

初步設想 1個前端伺服器 n個應用伺服器,實現不宕機發布。前提 後端應用共享session,可以考慮redis實現。初步實驗 nginx 2個tomcat執行測試 先準備乙個nginx,nginx.conf檔案內容如下 然後準備2個tomcat 設定埠分別為8084 8086。在root資料夾下面各...