サイト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;
}
これを行う最善の方法は何ですか?