負(fù)載均衡架構(gòu):gslb(針對(duì)廣域網(wǎng)的一種負(fù)載均衡架構(gòu))登夫、slb(常見負(fù)載均衡架構(gòu),針對(duì)服務(wù)器)
負(fù)載均衡方式:四層負(fù)載(傳輸層)磕潮、七層負(fù)載(應(yīng)用層)
七層負(fù)載均衡
使用模塊:upstream
配置在http層
nginx監(jiān)聽三個(gè)不同端口效床,模擬三臺(tái)nginx節(jié)點(diǎn)
server {
listen 8001;
server_name localhost;
location / {
root /soft/code/server1;
index index.html;
}
}
server {
listen 8002;
server_name localhost;
location / {
root /soft/code/server2;
index index.html;
}
}
server {
listen 8003;
server_name localhost;
location / {
root /soft/code/server3;
index index.html;
}
}
對(duì)應(yīng)html文件參考
<html>
<head>
<meta charset="utf-8">
<title>server1</title>
</head>
<body style="background-color:yellow;">
<h1>server1</h1>
</body>
</html>
配置負(fù)載均衡
#定義一個(gè)負(fù)載均衡列表候引,名字為test1们童。同時(shí)定義列表中需要代理的地址
upstream test1 {
server 127.0.0.1:8001;
server 127.0.0.1:8002;
server 127.0.0.1:8003;
}
server {
listen 80;
server_name www.ylw.com;
location / {
proxy_pass http://test1;#調(diào)用負(fù)載均衡列表
}
}
訪問測(cè)試(默認(rèn)是按照次數(shù)輪詢分配畔况,第一次請(qǐng)求分發(fā)給server1,第二次請(qǐng)求分發(fā)給server2慧库,第三次請(qǐng)求分發(fā)給server3)
負(fù)載均衡配置進(jìn)階
1跷跪、backup參數(shù)
upstream test1 {
server 127.0.0.1:8001 backup;#8002,8003節(jié)點(diǎn)都無法使用時(shí)齐板,才啟動(dòng)8001
server 127.0.0.1:8002;
server 127.0.0.1:8003;
}
server {
listen 80;
server_name www.ylw.com;
location / {
proxy_pass http://test1;
}
}
2吵瞻、down參數(shù)
upstream test1 {
server 127.0.0.1:8001 down;#該節(jié)點(diǎn)不參與負(fù)載均衡
server 127.0.0.1:8002;
server 127.0.0.1:8003;
}
server {
listen 80;
server_name www.ylw.com;
location / {
proxy_pass http://test1;
}
}
3、max_fails覆积、fail_timeout
upstream test1 {
server 127.0.0.1:8001 max_fails=1 fail_timeout=10s;#當(dāng)請(qǐng)求失敗一次的時(shí)候听皿,就將它判定為不可用熟呛,同時(shí)十秒鐘后再次嘗試請(qǐng)求
server 127.0.0.1:8002;
server 127.0.0.1:8003;
}
server {
listen 80;
server_name www.ylw.com;
location / {
proxy_pass http://test1;
}
}
4宽档、nginx負(fù)載均衡分配策略
輪詢:按照時(shí)間順序逐一分配到不同的后端服務(wù)器
加權(quán)輪詢:weight值越大,分配到的機(jī)率越高
ip_hash:每個(gè)請(qǐng)求訪問ip的hash結(jié)果分配庵朝,這樣每個(gè)ip固定訪問一個(gè)后端服務(wù)器
url_hash:按照訪問的url的hash結(jié)果來分配請(qǐng)求
least_conn:最少連接數(shù)吗冤,哪個(gè)機(jī)器連接上少就分發(fā)
hsah關(guān)鍵數(shù)值:根據(jù)自定義的key值分發(fā)
4.1、加權(quán)輪詢
upstream test1 {
server 127.0.0.1:8001 weight=5;#每七個(gè)請(qǐng)求中九府,會(huì)有五個(gè)請(qǐng)求分配給這臺(tái)節(jié)點(diǎn)
server 127.0.0.1:8002;
server 127.0.0.1:8003;
}
server {
listen 80;
server_name www.ylw.com;
location / {
proxy_pass http://test1;
}
}
4.2椎瘟、ip_hash
upstream test1 {
ip_hash;#使用ip_bash,可以解決會(huì)話信息不一致
server 127.0.0.1:8001;
server 127.0.0.1:8002;
server 127.0.0.1:8003;
}
server {
listen 80;
server_name www.ylw.com;
location / {
proxy_pass http://test1;
}
}
4.3、url_hash
upstream test1 {
hash $request_uri;
server 127.0.0.1:8001;
server 127.0.0.1:8002;
server 127.0.0.1:8003;
}
server {
listen 80;
server_name www.ylw.com;
location / {
proxy_pass http://test1;
}
}