服務(wù)器 - nginx 如何配置負(fù)載均衡
問題描述
有三臺機(jī)器,ABC,所有請求都給A,然后A轉(zhuǎn)發(fā)給BC,由BC處理業(yè)務(wù)假設(shè)域名是bla.com在機(jī)器A上,http 模塊內(nèi)寫以下配置,訪問bla.com,訪問到的是A默認(rèn)頁面
upstream bla.com {ip_hash;server 192.168.100.2;server 192.168.100.3;}
怎么樣才能讓所有的請求都按 ip_hash 轉(zhuǎn)發(fā)給B,C
問題解答
回答1:https 負(fù)載均衡架構(gòu)如圖,與http區(qū)別不大
upstream mywebapp1 { server 10.130.227.11; server 10.130.227.22;}server { listen 80; listen 443 ssl; server_name example.com www.example.com; ssl on; ssl_certificate /etc/nginx/ssl/example.com/server.crt; ssl_certificate_key /etc/nginx/ssl/example.com/server.key; ssl_trusted_certificate /etc/nginx/ssl/example.com/ca-certs.pem; location / {proxy_pass http://mywebapp1;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme; }}回答2:
你的意思是, 不想讓A服務(wù)器承擔(dān)流量了?
在服務(wù)器A轉(zhuǎn)發(fā)給后端時, 設(shè)置特殊的header
add_header HELLO Y;
B,C在發(fā)現(xiàn)有HELLO這個header時,立即返回302,讓用戶對B,C直接發(fā)起連接
if ($http_HELLO = ’Y’){ rewrite ^ http://$server_addr:$server_port$request_uri? redirect;}
相關(guān)文章:
1. docker - 各位電腦上有多少個容器啊?容器一多,自己都搞混了,咋辦呢?2. java - spring boot 如何打包成asp.net core 那種獨(dú)立應(yīng)用?3. java - 在用戶不登錄的情況下,用戶如何添加保存到購物車?4. datetime - Python如何獲取當(dāng)前時間5. docker start -a dockername 老是卡住,什么情況?6. javascript - nginx反向代理靜態(tài)資源403錯誤?7. docker網(wǎng)絡(luò)端口映射,沒有方便點(diǎn)的操作方法么?8. 安全性測試 - nodejs中如何防m(xù)ySQL注入9. javascript - 關(guān)于apply()與call()的問題10. python - 調(diào)用api輸出頁面,會有標(biāo)簽出現(xiàn),請問如何清掉?
