Nginx配置upstream實現負載均衡

2021-08-21 17:54:14 字數 1802 閱讀 7271

今天來實踐一下upstream的應用,環境如下:

名稱server1(nginx)

server2(apache + php)

sever3(apache + php)

server4(nginx + php)

ip192.168.10.3

192.168.10.4

192.168.10.5

192.168.10.6

目的是通過upstream的幾種用法,將server1的請求**到後面的幾台server,實現負載均衡

一、輪詢(預設)

在nginx.conf配置檔案中的http節點下,新增upstream節點test

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
upstream test
在server節點中的location節點新增proxy_pass,並配置為http:// + upstream節點名

location /
[root@localhost ~]# systemctl reload nginx
訪問server1的ip,可以看到請求被**到了server3了

再重新整理一次

再重新整理

可以看到upstream按照輪詢(預設)方式進行負載,每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。雖然這種方式簡便、成本低廉。但缺點是:可靠性低和負載分配不均衡。適用於伺服器集群和純靜態頁面伺服器集群。

二、weight(權重)

還是配置upstream節點,這次我們剔除掉server3,server2的權重為server3的一倍

upstream test
weight和訪問比率成正比,請求三次其中兩次會分配到server2,用於後端伺服器效能不均的情況

三、ip_hash(訪問ip

每次請求都會分配到server3,ip_hash根據每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問乙個後端伺服器,可以解決session的問題

upstream還可以為每個裝置設定狀態值,這些狀態值的含義分別如下:

down表示單前的server暫時不參與負載

weight預設為1.weight越大,負載的權重就越大。

max_fails:允許請求失敗的次數預設為1.當超過最大次數時,返回proxy_next_upstream 模組定義的錯誤.

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

backup: 其它所有的非backup機器down或者忙的時候,請求backup機器。所以這台機器壓力會最輕。

Nginx 負載均衡配置(upstream)

官方文件 每個請求按時間順序逐一分配到不同的後端伺服器。upstream backend server指定輪詢機率,weight和訪問比率成正比。預設weight 1 upstream backend serverupstream backend server按訪問ip的hash結果分配,這樣每個訪...

NGINX 負載均衡 upstream

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

Nginx的upstream 支援演算法

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