天天看點

nginx 負載均衡 404_nginx配置負載均衡

nginx 負載均衡 404_nginx配置負載均衡

- 負載均衡是網絡基礎架構的一個非常關鍵的組成部分,有了負載均衡,我們可以把應用伺服器部署多台,避免了服務當機,也增強了服務的性能及可用性。

- 負載均衡的算法有很多 ,這裡隻是簡單提下,

- **輪詢**:從第一個請求的伺服器開始,按循序往後依次選擇

- **權重輪詢**:每台伺服器負載能力不一樣,能力弱點的,可以為其配置設定較小的權重,降低其系統壓力,能力強的可以加大其權重,權重輪詢可以很好處理這些。nginx的負載均衡預設算法是權重輪詢算法。

- **随機算法**:從伺服器中随機選擇一個處理請求

- **最小連接配接**:選擇連接配接數最小、壓力最小的伺服器,來處理請求

- **散列**:根據請求源的IP的散列(hash)來選擇請求的伺服器。該算法很好的規避了多節點web項目中的session同步問題。

- 負載均衡的方式也分為軟/硬體,方式也很多,接下來我們來講nginx怎麼配置負載均衡,前幾篇已經寫了nginx的安裝以及https的配置,有需要可以浏覽下。

## 1、準備服務

- 我放了兩個tomcat在伺服器上,端口分别改為8085、8086

nginx 負載均衡 404_nginx配置負載均衡

- 首先确認服務正常

nginx 負載均衡 404_nginx配置負載均衡
nginx 負載均衡 404_nginx配置負載均衡
nginx 負載均衡 404_nginx配置負載均衡

## 2、修改nginx配置

- 進入/etc/nginx/conf.d

nginx 負載均衡 404_nginx配置負載均衡

- upstream子產品,将使nginx跨越單機的限制,完成網絡資料的接收、處理和轉發。

- demo:

upstream test{ 
	 ip_hash; 
      server 127.0.0.1:8081weight=1; 
      server 127.0.0.1:8082 down; 
      server 127.0.0.1:8083 backup;
      server 127.0.0.1:8084 weight=2; 
}           

-ip_hash:對請求的IP進行hash後的結果進行配置設定,這樣每個使用者固定請求同一個伺服器

- down: 表示單前的服務臨時不參與負載.

- backup: 其他全部的非backup機器down或者忙的時候,請求backup機器,這台機器壓力會最輕

- 權重輪詢:weight表示權重的意思,數字越大,權重越高。上面配置,8084是8081的權重的兩倍,就是三次請求,8084處理兩次,8081處理一次

- 我們這樣配置來測試:

vi upstream.conf           
upstream tomcat {
    server 127.0.0.1:8085;		
    server 127.0.0.1:8086; 	
}           
vi https.www.flighting.top.conf            
# HTTPS redirect
server {
	listen 443 ssl;
	server_name www.flighting.top;

	# SSL
	ssl_certificate /etc/nginx/crt/test.crt;
	ssl_certificate_key /etc/nginx/crt/test.key;

	# security
	#include conf.d/include/security.conf;

	# logging
	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log warn;

	# reverse proxy
	location / {
		proxy_pass http://tomcat;
		#include conf.d/include/proxy.conf;
	}

	# additional config
	#include conf.d/include/general.conf;
		
  }
}           

- 啟動nginx,通路https://47.101.201.179

nginx 負載均衡 404_nginx配置負載均衡

## 3、測試負載均衡

- 首先我們把8085的服務停止

nginx 負載均衡 404_nginx配置負載均衡

- 通路http://47.101.201.179:8085/

nginx 負載均衡 404_nginx配置負載均衡

- 通路https://47.101.201.179,服務仍是好着的

nginx 負載均衡 404_nginx配置負載均衡

- 我們再把8086的服務停止

nginx 負載均衡 404_nginx配置負載均衡

- 通路http://47.101.201.179:8086/

nginx 負載均衡 404_nginx配置負載均衡

- 通路https://47.101.201.179,服務當機

nginx 負載均衡 404_nginx配置負載均衡

- 啟動8085的服務,再通路https://47.101.201.179

nginx 負載均衡 404_nginx配置負載均衡

- 至此負載均衡測試成功,關于ip_hash、weight大家有興趣可以自己寫個頁面測試看,在此不多說

- 下一篇博文,寫寫我最近的一個項目中用到的,DMZ區怎麼來做nginx的叢集

繼續閱讀