我有我们的应用程序的新版本,它需要在投入生产之前进行测试。
当前有一台主机接收所有请求并使用 proxy_pass 将它们转发到 Apache。我想添加另一台服务器,并仅将一些 GET 请求转发给它。
可以配置 nginx 来做到这一点吗?
答案1
是的,您需要在配置中设置第二个上游,然后使用某些东西将特定请求发送到那里。例如:
upstream old_upstream {
1.2.3.4:8080;
}
upstream new_upstream {
5.6.7.8:8080;
}
set $upstream old_upstream;
if ( somecondition where you want to use the new server ) {
set $upstream new_upstream;
}
location / {
proxy_pass http://$upstream;
}
答案2
或者您可以简单地不使用上游并使用简短版本。
location / {
if (somecondition for new server ) {
proxy_pass http://5.6.7.8:8080;
break;
}
proxy_pass http://1.2.3.4:8080;
}
如果有帮助请+1 :) 谢谢