Apachのmod_proxyを利用して別ホストのリクエスト/レスポンスを転送する

参考になるサイトがあったのでメモしておきます。

<VirtualHost *:*>
ProxyPreserveHost On
ProxyPass / http://192.168.111.2
ProxyPassReverse / http://192.168.111.2/
ServerName hostname.example.com
</VirtualHost> 

VirtualHostとmod_proxyの基本的な組み合わせですね。

# Configuration to forward requests for startup.tld
<VirtualHost 9.20.1.1:80>
ServerName www.startup.tld
ServerAlias startup.tld

ProxyPass / http://127.0.0.2:10000/
ProxyPassReverse / http://127.0.0.2:10000/
ProxyPassReverse / http://www.startup.tld:10000/
ProxyPassReverse / http://startup.tld:10000/
</VirtualHost>

# Configuration to forward requests for reckless.tld
<VirtualHost 9.20.1.1:80>
ServerName www.reckless.tld
ServerAlias reckless.tld

ProxyPass / http://127.0.0.2:10001/
ProxyPassReverse / http://127.0.0.2:10001/
ProxyPassReverse / http://www.reckless.tld:10001/
ProxyPassReverse / http://reckless.tld:10001/
</VirtualHost>

複数の内部サイトに対して転送を行う場合の方法。


とりあえず私がやりたかったこと。
転送先が1つのホスト、かつ複数のポートで構成されている場合の転送例です。

NameVirtualHost *:80
UseCanonicalName Off
ProxyVia On
ProxyRequests Off

<VirtualHost *:80>
ServerName star.hoge.com
ProxyPass / http://192.168.11.1/
ProxyPassReverse / http://192.168.11.1/
</VirtualHost>

<VirtualHost *:8001>
ServerName star.hoge.com
ProxyPass / http://192.168.11.1:8001/
ProxyPassReverse / http://192.168.11.1:8001/
</VirtualHost>