Nginx負載均衡

2021-08-31 16:27:10 字數 4256 閱讀 1935

隨著企業的業務增長,面對客戶端海量的請求訪問,對服務端造成大量的併發,服務的響應速度就會減慢。為了解決這個問題,企業往往會增加服務的數量,同時也會在前端設定乙個負載均衡,來均分這些服務的請求,以提公升服務的吞吐率和服務的效能。如果其中乙個服務因為併發請求過高而無法繼續提供服務,負載均衡就會剔除該服務,其他服務還是會正常執行。

服務端(ip:172.25.0.1)

1、啟動nginx服務(先啟動nginx程序服務,否則後面重新載入nginx服務時會報錯)

systemctl start nginx
2、複製三份nginx配置檔案,分別命名為 server1.conf,server2.conf,server3.conf

cd /etc/nginx/conf.d/

#切換到nginx預設配置檔案目錄

cp default.conf server1.conf

#複製乙份配置檔案,改名為server1.conf

cp default.conf server2.conf

#複製乙份配置檔案,改名為server2.conf

cp default.conf server3.conf

#複製乙份配置檔案,改名為server3.conf

3、修改server1.conf配置檔案,將埠號改為8001,訪問路徑改為 /opt/server1

vim /etc/nginx/conf.d/server1.conf

server

修改serve2.conf配置檔案,將埠號改為8002,訪問路徑改為 /opt/server2

vim /etc/nginx/conf.d/server2.conf

server

修改server3.conf配置檔案,將埠號改為8003,訪問路徑改為 /opt/server3

vim /etc/nginx/conf.d/server3.conf

server

4、在三個訪問路徑下建立內容不同的html檔案

mdkir /opt/server1   #在/opt目錄下建立server1目錄

vim /opt/server1/index.html

mdkir /opt/server2   #在/opt目錄下建立server2目錄

vim /opt/server2/index.html

mdkir /opt/server3   #在/opt目錄下建立server3目錄

vim /opt/server3/index.html

5、檢查nginx配置語法

nginx -tc /etc/nginx/nginx.conf
6、重載入nginx服務並且重新啟動nginx服務

nginx -s reload -c /etc/nginx/nginx.conf

#重新載入nginx服務

systemctl restart nginx

#重新啟動nginx服務

7、檢查對應的8001,8002,8003埠是否開啟

ss -luntp | grep nginx         #檢視nginx服務的埠程序

tcp listen 0 128 *:80 *:* users:(("nginx",pid=2025,fd=6),("nginx",pid=2024,fd=6))

tcp listen 0 128 *:8001 *:* users:(("nginx",pid=2025,fd=7),("nginx",pid=2024,fd=7))

tcp listen 0 128 *:8002 *:* users:(("nginx",pid=2025,fd=8),("nginx",pid=2024,fd=8))

tcp listen 0 128 *:8003 *:* users:(("nginx",pid=2025,fd=9),("nginx",pid=2024,fd=9))

上面看到服務已經開啟,可以在瀏覽器端訪問  172.25.0.1:8001(8002、8003)/index.conf 

負載均衡配置端(ip:172.25.0.5)

1、啟動nginx程序服務

systemctl start nginx
2、修改nginx配置檔案

vim /etc/nginx/conf.d/default.conf

upstream vincen

server

vim /etc/nginx/proxy_params  #將proxy_params存放在/etc/nginx目錄下

proxy_redirect default;

#跳轉重定向配置

#新增host的頭資訊,並設定http_host變數

proxy_set_header x-real-ip $remote_addr;

#在前段將ip資訊帶到後端

proxy_connect_timeout 30;

#預設的請求超時配置,tcp請求超時30s

proxy_send_timeout 60;

#服務端請求完後,響應給客戶端的時間

proxy_read_timeout 60;

#已經建立好連線的情況下,伺服器接收請求後在處理請求的時間

proxy_buffer_size 32k;

#設定緩衝區的大小為32k

proxy_buffering on;

#nginx在緩衝區等待後端相應的資訊再傳送給前端

proxy_buffers 4 128k;

#設定緩衝區的數量以及總大小

proxy_busy_buffers_size 256k;

#設定緩衝區最大為256k

proxy_max_temp_file_size 256k;

#臨時檔案的最大為256k

3、檢查nginx配置語法

nginx -tc /etc/nginx/nginx.conf
4、重新載入nginx服務

nginx -s reload -c /etc/nginx/nginx.conf
5、在瀏覽器訪問 172.25.0.5  就會出現剛剛訪問172.25.0.1:8001(8002、8003)/index.conf一樣的情況(這是訪問本機伺服器的時候跳轉到那三個訪問埠)

這時候回到服務端的linux中,使用iptables規則關掉nginx的其中乙個埠

iptables -i input -p tcp --dport 8002 -j drop
然後再在瀏覽器重新整理,就不會在出現內容為「8002埠」的介面

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...