我正在运行 nginx 作为站点 example.com 的反向代理,以对后端服务器中运行的 ruby 应用程序进行负载平衡。我在 nginx 中有以下proxy_set_header
字段,它将主机头传递给后端 ruby。这是 ruby 应用程序识别子域名所必需的。
location / {
proxy_pass http://rubyapp.com;
proxy_set_header Host $http_host;
}
现在我想创建一个 alias beta.example.com
,但是传递给后端的主机头应该仍然是www.example.com
,否则 ruby 应用程序将拒绝请求。所以我想要类似于下面的内部位置指令。
if ($http_host = "beta.example.com") {
proxy_pass http://rubyapp.com;
proxy_set_header Host www.example.com;
}
做这个的最好方式是什么?