サーバーwww.example.com
では、 <Location>
ディレクティブを使用して、トラフィックをバックエンドサーバーにプロキシします。
<Location /app1>
ProxyPass http://192.168.1.20
</Location>
次に、uat.example.com
の同じIPアドレスを指すサブドメインwww.example.com
を追加しました。開発中のアプリをテストするためのクライアントのプロキシとして使用したいと思います。うまくいけば、クライアントは次の方法でアクセスできます。
http://uat.example.com/app2_uat
ここで、場所を追加すると、次のようになります。
<Location /app2_uat>
ProxyPass http://192.168.1.30
</Location>
クライアントは次の両方にアクセスできます。
http://www.example.com/app2_uat
http://uat.example.com/app2_uat
次のように場所を制限するにはどうすればよいですか。
http://uat.example.com/app2_uat
アクセスできますか? (つまり、http://www.example.com/app2_uat
にアクセスできないようにする必要があります。)
ApacheでNameVirtualHost
オプションを使用すると、これは簡単に実行できます。私は ここで別のユーザーに提供された詳細な回答 を持っています。基本的な概念は、サブドメインごとに2つの異なるVirtualHost
構成を作成することです。これを行うと、両方のサブドメインの構成をカスタマイズして、探している粒度を実現できます。
編集:元の投稿者固有の質問の詳細のNameVirtualHost
を設定する方法に詳細を追加します:
一般に、最初に必要なポートに対してNameVirtualHost
をアクティブ化する必要があります。ポート80を使用すると想定しているので、Apache構成でこの行を見つけます(/etc/Apache2/ports.conf
にある可能性があります)。次のように設定します。
NameVirtualHost *:80
Apacheの設定(チャンスは上記と同じ/etc/Apache2/ports.conf
)がポート80にリストされるように設定されていることを確認してください。これは事実ですが、参照用にここに追加します。
Listen 80
ここで魔法が起こります。繰り返しになりますが、私は必要最低限の基本を行っているだけなので、サーバーの設定に合わせて調整してください。これはwww.example.com
用です:
<VirtualHost *:80>
ServerName www.example.com
ServerAlias www.example.com
<Location /app1>
ProxyPass http://192.168.1.20
</Location>
</VirtualHost>
そして今、uat.example.com
のために、次のような新しい構成を作成します。
<VirtualHost *:80>
ServerName uat.example.com
ServerAlias uat.example.com
<Location /app2_uat>
ProxyPass http://192.168.1.30
</Location>
</VirtualHost>
NameVirtualHost
を使用すると、1つのIPアドレスに関連付けられた2つの個別のドメイン構成をセットアップできます。繰り返しになりますが、詳細については、上記でリンクした回答を確認してください。