Apacheのリバースプロキシ設定
プロキシサーバからバックエンドのWebサーバに振り分ける設定。
例えば、プロキシサーバへ hogehoge.com というHost(HTTPヘッダ)でアクセスした際に、同じLAN内のサーバ web01 にプロキシするとする。
<VirtualHost *:80> ServerName hogehoge.com ProxyPass / http://web01/ ProxyPassReverse / http://web01/ ProxyPreserveHost On </VirtualHost>
ProxyPreserveHost On をつけておくと、HTTPヘッダのHostが引き継がれる。
さて、別のホスト名 fugafuga.com でアクセスしたときも同様に web01 へプロキシしたい。かつ、web01 にリクエストした際の HTTPヘッダのHostは hogehoge.com にしたい。
そんなときはこうする。
<VirtualHost *:80> ServerName hogehoge.com ServerAlias fugafuga.com ProxyPass / http://web01/ ProxyPassReverse / http://web01/ ProxyPreserveHost On RequestHeader set Host "hogehoge.com" early </VirtualHost>
ServerAliasの指定だけだと、HTTPヘッダのHostは fugafuga.com になるが、RequestHeader setでヘッダを書き換えることができる。"early"識別子は、Apacheのバージョンによっては、なくても動くかもしれない。