【发布时间】:2013-09-27 13:25:03
【问题描述】:
我想将 nginx 设置为负载均衡器。但我想以某种方式设置它,即某些请求(带有特定参数)只会发送到某些主机。基本上这个想法是根据原始请求使用任何主机,然后如果用户指定某些参数,例如bla0,然后将请求重定向到主机 0,而将 bla1 重定向到主机 1。所以这是我想出的配置:
# 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;
}
但不幸的是,这种配置不起作用。我总是收到循环请求,即 /request?q=bla0 去任一主机。我错过了什么。
【问题讨论】:
标签: nginx load-balancing