FreeBSD/mod_proxy

Apache2でmod_proxyを使う

Apache2ではApache1.3とmod_roxyの設定方法が変わっていました。
mod_cacheとかを使わないといけないみたいです。
忘れないようにメモ。

環境

FreeBSD 6.0
Apache 2.0.55

インストール(Apache2)

proxyモジュールを組み込んでmakeしなおす。

# cd /usr/ports/www/Apache2
# make install WITH_PROXY_MODULES="YES"


httpd.confの修正

# vi /usr/local/etc/apache2/httpd.conf
-------------------追加個所-----------------------
LoadModule cache_module libexec/apache2/mod_cache.soLoadModule disk_cache_module libexec/apache2/mod_disk_cache.so
LoadModule proxy_module libexec/apache2/mod_proxy.so
LoadModule proxy_connect_module libexec/apache2/mod_proxy_connect.so
LoadModule proxy_ftp_module libexec/apache2/mod_proxy_ftp.so
LoadModule proxy_http_module libexec/apache2/mod_proxy_http.so

<IfModule mod_proxy.c>
   ProxyRequests On
   ProxyVia On
   ProxyBlock www.akusitu.com www.sukebei.com

   <Directory proxy:*>
       Order deny,allow
       Deny from all
       Allow from 192.168.0
   </Directory>

</IfModule>

<IfModule mod_cache.c>
    <IfModule mod_disk_cache.c>

    CacheRoot "/usr/local/www/proxy"
    CacheEnable disk /
    CacheDirLevels 5
    CacheDirLength 3
    CacheSize 500
    CacheGcInterval 4
    CacheMaxExpire 24
    CacheLastModifiedFactor 0.1
    CacheDefaultExpire 1

    </IfModule>
</IfModule>

 -------------------追加個所-----------------------

Apacheの再起動

# /usr/local/sbin/apachectl restart

後はWindowsクライアントなどから、Proxyを設定して接続確認を行う。 IEでの設定方法

ソースからインストールする場合

# ./configure \
--prefix=/usr/local/apache2 \
--enable-so \
--enable-rewrite=shared \
--enable-ssl \
--enable-speling=shared \
--enable-proxy=shared \
--enable-proxy-http=shared

リバースプロキシとして使用。

「内部から外部へのアクセスを中継する」動作と反対であることが「リバース」の由来であると言われている。

この設定で、「php4.matsui.net」にアクセスすると、「http://127.0.0.1:8080」にアクセスできる。

LoadModule proxy_module       modules/mod_proxy.so
LoadModule proxy_http_module  modules/mod_proxy_http.so

<IfModule mod_proxy.c>
        ProxyRequests Off
        <Proxy *>
                Order deny,allow
                #Deny from all
                #Allow from .your_domain.com
        </Proxy>
</IfModule>

<VirtualHost *:80>
        ServerName php4.matsui.net
        ProxyPass / http://127.0.0.1:8080/
        ProxyPassReverse / http://127.0.0.1:8080/
</VirtualHost>