サイトexample.comのリバースプロキシとしてnginxを実行して、バックエンドサーバーで実行されているRubyアプリケーションの負荷を分散しています。proxy_set_headerホストヘッダーをバックエンドルビーに渡すnginxに次のフィールドがあります。これは、サブドメイン名を識別するために 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;
}
これを行う最善の方法は何ですか?