我正在处理nginx反向代理和负载平衡configuration,这是configuration。 后端我离开heroku。
是否有可能从上游部分获取服务器值,并使用服务器部分中的值来设置标题?
upstream backend { server myapp1.herokuapp.com; server myapp2.herokuapp.com;} server { listen 80; if(condition1){ set $len_host "myapp1.heroku.com"; } if(condition2){ set $len_host "myapp2.heroku.com"; } location / { proxy_pass http://backend; proxy_set_header Host $len_host; #proxy_set_header Host myapp1.herokuapp.com; }
}
我想dynamic地获取哪个上游服务器正在使用,并将该服务器设置为标题。 你们有什么想法如何设置?
我必须使用这种方法的原因是因为如果我只使用
proxy_pass backend;
它返回heroku没有这样的应用程序错误,如果我改变
upstream backend { server www.google.com; }
它会返回谷歌的404页面。
但是我发现如果我可以在服务器部分设置标题,就像
proxy_set_header Host myapp1.herokuapp.com;
可以findmyapp1服务器。 而且我想在这个反向代理中添加负载均衡function。 所以我认为如果我能从上游获得服务器的值,并将其设置在服务器部分,负载均衡function应该可以工作,但是我不知道如何从上游获得服务器的域名。 所以如果有人知道,请告诉我,谢谢。