Linux の使い方: Apache でバーチャルホストを別サーバーへ接続する (CentOS 5.4)


バーチャルホストを別サーバーへ接続する

CentOS 5.4 では Web サーバーとして "Apache" が用意されています。

Apache では複数のドメインを運用する場合にバーチャルホストを使用しますが、表示させるページとして、サーバーに格納されているファイルの他にも、別のサーバーで公開されている Web サイトを指定することもできるようになっています。

 

別のサーバーで公開されている Web サイトを表示させるためには、バーチャルホストの設定で行います。バーチャルホストの設定については Apache にバーチャルホストを設定する (CentOS 5.4) の方に記してありますので、そちらを参考にしてください。

バーチャルホストの設定ができていれば、後は <VirtualHost> を用いて設定を行うことができます。

<VirtualHost *:80>

ServerName proxy.ez-net.jp

ProxyPreserveHost On

ProxyPass / http://192.168.1.1/

ProxyPass / http://192.168.1.1:80/

ProxyPassReverse / http://192.168.1.1/

ProxyPassReverse / http://192.168.1.1:80/

</VirtualHost>

このようにすることで、"http://proxy.ez-net.ne.jp/" への接続要求があった時には、Apache が代わって "http://192.168.1.1/" へアクセスし、その内容を応答として返すようにすることができます。

また、複数のサブドメインをまとめて転送したいといった場合には、"ServerName" ディレクティブにひとまず代表となるドメインを指定した上で、"ServerAlias" ディレクティブで、例えば "*.proxy.ez-net.jp" といったワイルドカードによる指定も可能です。

 

 

ここまで出来たら Apache の設定が正しいかどうか、次の命令を使って確認してみます。

service httpd configtest

これで "Syntax OK" と表示されれば設定ファイルは問題ないので、次のようにして Apache に設定を適用すれば設定完了です。

service httpd reload