Nginx 配置實例-配置負載均衡

0. 實例效果

1. 兩個 tomcat 的安裝(可選)

這裏的兩個 tomcat,實際是爲了模擬後端真實服務器,既然是默認後端服務器,當然也可以選用其他服務器軟件,所以這一步爲可選操作。

1.1 tomcat8081 的安裝

1.1.1 tomcat8081 安裝包的裝備

# 解壓 tomcat 安裝包
tar zxvf apache-tomcat-7.0.70.tar.gz	
		
# 複製 tomcat 安裝文件到 /usr/local/tomcat8081 目錄
cp -vr apache-tomcat-7.0.70 /usr/local/tomcat8081		

1.1.2 tomcat8081 配置文件的修改

因爲這裏不是使用 tomcat 的默認端口進行安裝,所以需修改 tomcat 的部分端口,修改 server.xml 文件,修改部分如下:
在這裏插入圖片描述
在這裏插入圖片描述

1.1.3 驗證

/usr/local/tomcat8081/bin/startup.sh			# 啓動 8081 端口的 tomcat
/usr/local/tomcat8081/bin/shutdown.sh			# 停止 8081 端口的 tomcat 
ps aux | grep tomcat							# 查看 tomcat 進程狀態

tomcat8081 啓動後,瀏覽器訪問 tomcat8081 所在主機 IP 及對應端口,顯示頁面如下:
在這裏插入圖片描述

1.1.4 相關目錄及文件的創建

在 /usr/local/tomca8081/webapps/ 目錄下創建 edu 目錄

mkdir -v /usr/local/tomcat8081/webapps/edu

在 edu 目錄下創建文件 a.html,並填寫如下內容:

<h1>edu-----8081 !!!</h1>

瀏覽器訪問 http://192.168.25.120:8081/edu/a.html,顯示頁面如下:
在這裏插入圖片描述

1.2 tomcat8082 的安裝

1.2.1 tomcat8082 安裝包的裝備

# 解壓 tomcat 安裝包
tar zxvf apache-tomcat-7.0.70.tar.gz	
		
# 複製 tomcat 安裝文件到 /usr/local/tomcat8082 目錄
cp -vr apache-tomcat-7.0.70 /usr/local/tomcat8082		

1.2.2 tomcat8082 配置文件的修改

因爲這裏不是使用 tomcat 的默認端口進行安裝,所以需修改 tomcat 的部分端口,修改 server.xml 文件,修改部分如下:
在這裏插入圖片描述
在這裏插入圖片描述

1.2.3 驗證

/usr/local/tomcat8082/bin/startup.sh			# 啓動 8082 端口的 tomcat
/usr/local/tomcat8082/bin/shutdown.sh			# 停止 8082 端口的 tomcat 
ps aux | grep tomcat							# 查看 tomcat 進程狀態

tomcat8082 啓動後,瀏覽器訪問 tomcat8082 所在主機 IP 及對應端口,此處爲 192.168.25.120:8082,顯示頁面如下:
在這裏插入圖片描述

1.2.4 相關目錄及文件的創建

在 /usr/local/tomca8082/webapps/ 目錄下創建 edu 目錄

mkdir -v /usr/local/tomcat8082/webapps/edu

在 vod 目錄下創建文件 a.html,並填寫如下內容:

<h1>edu-----8082 !!!</h1>

瀏覽器訪問 http://192.168.25.120:8082/edu/a.html,顯示頁面如下:
在這裏插入圖片描述

2. nginx 的安裝

2.1 安裝 pcre 依賴

su - root							// 切換到 root 用戶

tar zxvf pcre-8.37.tar.gz			// 解壓 pcre 安裝包	

cd pcre-8.37						// 進入 pcre-8.37 目錄	
./configure							// 配置 pcre-8.37 
make && make install				// 編譯安裝 pcre-8.37

pcre-config --version				// pcre 安裝成功後,查看其版本號

2.2 安裝其他依賴

su - root							// 切換到 root 用戶

// 安裝其他依賴
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel	

2.3 Nginx 的安裝

su - root							// 切換到 root 用戶

tar zxvf nginx-1.12.2.tar.gz		// 解壓 nginx-1.12.2.tar.gz 安裝包

cd nginx-1.12.2						// 進入 nginx-1.12.2 目錄
./configure							// 配置 nginx-1.12.2
make && make install				// 編譯安裝 nginx-1.12.2

2.4 驗證

/usr/local/nginx/sbin/nginx				// 啓動 nginx
/usr/local/nginx/sbin/nginx -s stop		// 停止 nginx
ps -ef | grep nginx						// 查看 nginx 進程狀態

啓動 nginx 之後,瀏覽器訪問 nginx 所在主機的 IP 即端口,此處爲 192.168.25.120:80(80爲默認短褲,訪問時可省略),顯示頁面如下:
在這裏插入圖片描述

3. nginx 負載均衡的配置

3.1 負載均衡方式 1——輪詢(默認)

輪詢:每個請求按時間順序逐一分配給後端服務器,如果後端服務器 down 掉,則自動將其剔除;
使用輪詢的負載均衡方式,修改 nginx 的配置文件如下:
在這裏插入圖片描述
瀏覽器訪問 http://192.168.25.120/edu/a.html,顯示頁面如下:
在這裏插入圖片描述
刷新,顯示頁面如下:
在這裏插入圖片描述
可以看到使用默認的輪詢方式進行負載均衡,瀏覽器請求被平均分配給後端的 8081、8082 兩個服務器進行處理。

3.2 負載均衡方式 2——weight

weight:權重,默認值 1,根據權重設置分配請求的機率,權重值越大,分配到的請求越多。
使用權重的負載均衡方式,修改 nginx 的配置文件如下:
在這裏插入圖片描述
瀏覽器訪問 http://192.168.25.120/edu/a.html,顯示頁面如下:
在這裏插入圖片描述
再次刷新,顯示頁面如下:
在這裏插入圖片描述
刷新,顯示頁面如下:
在這裏插入圖片描述
可以看到使用 weight 的輪詢方式進行負載均衡,瀏覽器發送 3 個請求,有 2 個被分配給 8082 的服務器(機率 2/3),有一個被分配給 8081 的服務器(機率 1/3)。

3.3 負載均衡方式 3——ip_hash

ip_hash:哈希,每個請求按訪問 IP 的哈希結果進行分配,這樣每個訪客固定請求一個後端服務器,可以解決 session 的問題。
使用 ip_hash 的負載均衡方式,修改 nginx 的配置文件如下:
在這裏插入圖片描述
瀏覽器訪問 http://192.168.25.120/edu/a.html,顯示頁面如下:
在這裏插入圖片描述
刷新,顯示頁面如下:
在這裏插入圖片描述
可以看到使用 ip_hash 的輪詢方式進行負載均衡,無論刷新多少次,請求始終被分配給 8081 服務器。

3.4 負載均衡方式 4——fair

fair:根據頁面大小、加載時間長短智能的進行負載均衡。
nginx-upstream-fair-master fair模塊源碼

參考資料

《尚硅谷Nginx教程》11-nginx配置實例(負載均衡)
nginx-upstream-fair-master fair模塊源碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章