1
我想將nginx設置爲負載均衡器。但我想設置它的方式是某些請求(具有特定參數)只會發送到某些主機。基本上想法是在原始請求中使用任何主機,然後如果用戶指定某個參數,例如bla0,然後將請求重定向到主機0,而對於BLA1主辦1.因此,這裏是我的配置想出了:nginx負載均衡器/位置難題
# load balancing server
server {
listen 8000;
server_name example.com www.example.com;
# requests to bla0 server
location ~ ^(/request).*bla0$ {
proxy_pass http://localhost:8081;
}
# requests to bla1 server
location ~ ^(/request).*bla1$ {
proxy_pass http://localhost:8082;
}
# for default location use balancer
location/{
proxy_pass http://cluster;
}
}
upstream cluster {
server localhost:8081;
server localhost:8082;
}
但不幸的是這種配置不起作用。我總是得到輪詢請求,即/請求?q = bla0進入任一主機。我錯過了什麼。
偉大的提示,這是我一直在尋找。所以位置規則變成這樣:location/{proxy_pass http:// cluster; if($ args〜pattern1){proxy_pass http:// host1} if($ args〜pattern2){proxy_pass http:// host2}} – Valentin