本篇文章介紹Nginx實現(xiàn)負載均衡,本文使用Nginx和兩個SpringBoot簡單Web應用實現(xiàn)遮婶。
1.準備工作牺弹。
結(jié)合本文場景蟀俊,需要安裝Nginx和Java環(huán)境(運行SpringBoot項目)。
1.1 關(guān)于Linux系統(tǒng)安裝Nginx可以參考我的文章---(傳送門)小泉。
1.2 由于只是測試芦疏,SpringBoot只是映射了根路徑,端口分別是10001和10002微姊,分別返回demo1和demo2字符串作為區(qū)分酸茴。
2.Nginx負載均衡的集中方式介紹
2.1 輪詢
輪詢方式是Nginx負載默認的方式,顧名思義兢交,所有請求都按照時間順序分配到不同的服務上薪捍,如果服務Down掉,可以自動剔除配喳,如下配置后輪訓10001服務和10002服務酪穿。
upstream dalaoyang-server {
server localhost:10001;
server localhost:10002;
}
2.2 權(quán)重
指定每個服務的權(quán)重比例,weight和訪問比率成正比晴裹,通常用于后端服務機器性能不統(tǒng)一被济,將性能好的分配權(quán)重高來發(fā)揮服務器最大性能,如下配置后10002服務的訪問比率會是10001服務的二倍涧团。
upstream dalaoyang-server {
server localhost:10001 weight=1;
server localhost:10002 weight=2;
}
2.3 iphash
每個請求都根據(jù)訪問ip的hash結(jié)果分配只磷,經(jīng)過這樣的處理经磅,每個訪客固定訪問一個后端服務,如下配置(ip_hash可以和weight配合使用)钮追。
upstream dalaoyang-server {
ip_hash;
server localhost:10001 weight=1;
server localhost:10002 weight=2;
}
2.4 最少連接
將請求分配到連接數(shù)最少的服務上馋贤。
upstream dalaoyang-server {
least_conn;
server localhost:10001 weight=1;
server localhost:10002 weight=2;
}
2.5 fair
按后端服務器的響應時間來分配請求,響應時間短的優(yōu)先分配畏陕。
upstream dalaoyang-server {
server localhost:10001 weight=1;
server localhost:10002 weight=2;
fair;
}
3.Nginx配置
以輪訓為例配乓,如下是nginx.conf完整代碼。
worker_processes 1;
events {
worker_connections 1024;
}
http {
upstream dalaoyang-server {
server localhost:10001;
server localhost:10002;
}
server {
listen 10000;
server_name localhost;
location / {
proxy_pass http://dalaoyang-server;
proxy_redirect default;
}
}
}
4.測試
重啟nginx惠毁,第一次訪問http://localhost:10000如圖所示犹芹,
image
在次訪問如圖所示
image
如果要修改負載均衡算法修改對應upstream模塊即可。