Nginx 負載均衡

2021-07-29 22:38:31 字數 2004 閱讀 1231

負載均衡,英文名稱為load balance,其意思就是分攤到多個操作單元上進行執行,例如web伺服器、ftp伺服器、企業關鍵應用伺服器和其它關鍵任務伺服器等,從而共同完成工作任務。

反向**(reverse proxy)方式是指以**伺服器來接受internet上的連線請求,然後將請求**給內部網路上的伺服器,並將從伺服器上得到的結果返回給internet上請求連線的客戶端,此時**伺服器對外就表現為乙個反向**伺服器。

在開始 nginx 負載均衡前還需做一件事,那就是還需要兩個伺服器,此處我們簡單的配置兩個 tomcat 伺服器(同一機器配置多個 tomcat),分別是 tomcat7 和 tomcat8。

修改 conf/nginx.conf 檔案

...

http 前

# docs 是 tomcat 裡的乙個專案

upstream docs

server

...}

...}

啟動三個伺服器(tomcat7、tomcat8、nginx),訪問:

localhost:8080/docs

localhost:8081/docs

能正常訪問 tomcat 則啟動正常。

訪問:localhost

表示 nginx 啟動正常。

f5 重新整理

發現 nginx 輪詢訪問 tomcat7 和 tomcat8,負載均衡成功。

1、輪詢(預設)

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

upstream docs
2、最少鏈結

web請求會被**到連線數最少的伺服器上。

least_conn; # 最少鏈結

upstream docs

3、weight 權重

指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的情況,weight預設是1。伺服器a和伺服器b的訪問比例為:2-1;比如有3個請求,前兩個會訪問a,三個訪問b,其它規則和輪詢一樣。

upstream docs
4、ip_hash

每個請求按訪問ip的hash值分配,這樣同一客戶端連續的web請求都會被分發到同一伺服器進行處理,可以解決session的問題。當後台伺服器宕機時,會自動跳轉到其它伺服器。

upstream docs
基於weight的負載均衡和基於ip_hash的負載均衡可以組合在一起使用。

5、url_hash(第三方)

url_hash是nginx的第三方模組,nginx本身不支援,需要打補丁。

nginx按訪問url的hash結果來分配請求,使每個url定向到同乙個後端伺服器,後端伺服器為快取伺服器、檔案伺服器、靜態伺服器時比較有效。缺點是當後端伺服器宕機的時候,url_hash不會自動跳轉的其他快取伺服器,而是返回給使用者乙個503錯誤。

upstream docs
6、fair(第三方)

按後端伺服器的響應時間來分配請求,響應時間短的優先分配。

upstream docs

nginx 負載均衡 Nginx負載均衡策略

nginx提供的負載均衡策略有2種 內建策略和擴充套件策略。內建策略為輪詢 預設 加權輪詢,ip hash,第三方。upstream mysvr1 輪詢 每個請求按照時間順序逐一的分配到每乙個後台伺服器上。如果某台伺服器宕機了,將會自動的剔除宕機的服務。nginx預設就是輪詢其權重都預設為1,伺服器...

nginx負載均衡

nginx 的 upstream目前支援 4 種方式的分配 1 輪詢 預設 每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。2 weight 指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的情況。3 ip hash 每個請求按訪問ip的hash...

nginx負載均衡

nginx s stop quick exit nginx s quit graceful quit nginx s reload changing configuration,starting a new worker,quitting an old worker gracefully nginx...