ポート80からのリクエストを受け入れるフロントエンドとフロントエンドからのプロキシ経由のバックエンドの2つのWebDebianサーバーがあります。
私がやりたいのは、仮想ホストを備えたバックエンドサーバーに接続するさまざまなURLを用意することです。
これがフロントエンドのApache設定です
<VirtualHost *:80>
ServerName dev.example.com
ProxyPass / http://192.168.144.100:80/
ProxyPassReverse / http://192.168.144.100:80/
</VirtualHost>
<VirtualHost *:80>
ServerName sandbox.example.com
ProxyPass / http://192.168.144.100:80/
ProxyPassReverse / http://192.168.144.100:80/
</VirtualHost>
そして、これがバックエンドのApache設定です
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName dev.example.com
DocumentRoot /var/www/example.com/dev/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/example.com/dev/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName sandbox.example.com
DocumentRoot /var/www/example.com/sandbox/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/example.com/sandbox/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
Dev.example.comまたはsandbox.example.comにアクセスすると、デフォルトの/ var/wwwファイルに移動します。
基本的に、バックエンドサーバーで複数の仮想ホストを実行する機能が必要です。
ご協力いただきありがとうございます。
このようにフロントエンドの設定を変更してみませんか?また、バックエンドに仮想ホスト設定は必要ありません。
<VirtualHost *:80>
ServerName dev.example.com
ProxyPass / http://192.168.144.100:80/
ProxyPassReverse / http://192.168.144.100:80/
</VirtualHost>
<VirtualHost *:80>
ServerName sandbox.example.com
ProxyPass / http://192.168.144.100:80/example.com/dev/
ProxyPassReverse / http://192.168.144.100:80/example.com/dev/
</VirtualHost>
ここを見てください Virtual_Hostとmod_proxyを一緒に使用 例
<VirtualHost *:80>
ProxyPreserveHost On
ServerName dev.example.com
ProxyPass / http://192.168.144.100:80/
ProxyPassReverse / http://192.168.144.100:80/
</VirtualHost>
<VirtualHost *:80>
ProxyPreserveHost On
ServerName sandbox.example.com
ProxyPass / http://192.168.144.100:80/
ProxyPassReverse / http://192.168.144.100:80/
</VirtualHost>
有効にすると、このオプション([ProxyPreserveHost][1]
)は、ProxyPass
行で指定されたホスト名ではなく、着信要求からプロキシされたホストにHost:行を渡します。
この場合、次のようにProxyPreserveHost
なしでも実行できると思います(ただし確かではありません)。
これをフロントエンドのhosts
ファイルに入れます
192.168.144.100 dev.example.com
192.168.144.100 sandbox.example.com
次にこれを行います:
<VirtualHost *:80>
ServerName dev.example.com
ProxyPass / http://dev.example.com/
ProxyPassReverse / http://dev.example.com/
</VirtualHost>
<VirtualHost *:80>
ServerName sandbox.example.com
ProxyPass / http://sandbox.example.com/
ProxyPassReverse / http://sandbox.example.com/
</VirtualHost>