12FF5B8

hico_horiuchiの技術系な覚え書き.

Ubuntu上のApacheでリバースプロキシ

Ubuntu 12.04のApacheでリバースプロキシの設定する時にハマったのでメモ.
Apacheは入ってるものとする.

必要なパッケージのインストール

mod_html_proxyが必要なので,aptでインストールする.

$ sudo apt-get install libapache2-mod-proxy-html libxml2-dev

モジュールを有効化

必要なモジュールを有効にする.

$ sudo a2enmod proxy proxy_http proxy_html

リバースプロキシの設定

ここでは,公開サーバ http://example.com/proxy/ へのアクセスを内部サーバ http://192.168.1.1/ にプロキシする.
/etc/apache2/mods-enabled/proxy.conf</IfModule>の前に以下の内容を追加.

ProxyPass /proxy/ http://192.168.1.1/
ProxyPassReverse /proxy/ http://192.168.1.1/
SetOutputFilter INFLATE;proxy-html;DEFLATE
ProxyHTMLURLMap http://192.168.1.1 /proxy

/etc/apache2/mods-enabled/proxy_html.confの先頭に以下の内容を追加.

LoadFile /usr/lib/x86_64-linux-gnu/libxml2.so

これでOKなので,apacheを再起動して動作確認する.

$ sudo service apache2 restart

まとめ

SetOutputFilter INFLATE;proxy-html;DEFLATEでハマった.
(最初はSetOutputFilter proxy-htmlしか書いてなくてページを表示できなかった.)

これで,HTMLソース内のURLも書き換えられるようになったので便利.