Apache2 で proxy サーバ

proxy (プロキシ、プロクシ)という言葉は時折目にするものの、インターネット初心者には意味がよく分からないでしょう。IT用語辞典 e-Words のサイトで検索してみますと、
proxy の検索結果 (リンクをクリックしてご覧ください)
とあります。

■ プロキシサーバを利用するとどんなことができるでしょう。
  1. アクセス側の情報を隠せる
    インターネットでサイトにアクセスすると、アクセス元の色々な情報がアクセス先のサーバに伝わります。アクセス時刻、IPアドレス、リファラー(どのサイトのリンクをクリックして来たか)、ホスト名(アクセス側のプロバイダー名)、アクセス側のパソコンのOS、ブラウザ名などなどの情報が瞬時にアクセス先のサーバのログファイルに記録されます。この情報の内、外部プロキシサーバを利用することによって、この内のいくつかを隠すことができます。まぁ、あまり悪いことをしようしない限り、その必要はないでしょうが…。(^^;)
  2. ラン内からの自宅サーバへのアクセスと、外部公開のチェックができる
    自宅サーバを開局している場合、ルータの仕様でラン内から直接ドメイン、グローバルIPアドレスではアクセスできない場合が普通ですが、外部プロキシを使うとドメイン、グローバルIPアドレスでアクセスできるようになります。しかも、自宅サーバが落ちていると、アクセスできなくなりますので、自宅サーバが外部公開できているかいないかの確認もできます。
  3. 特定のサイトへのアクセスを、できなくすることができる
    プロバイダによっては『有害サイトブロックサービス』などの名で、このサービスをしているところがあります。これはラン内に設けたプロキシサーバでも可能です。
  4. キャッシュをたくさん持っているプロキシサーバを利用することによって、表示スピードを早くする。
    これはラン内のプロキシサーバでも、自分のよく行くサイトは決まっているでしようから、キャッシュ機能を持たせておけば、ある程度のスピードアップは期待できるかも知れません。

■ Apache2 をどのようにしたら proxy サーバの機能をもたせることができるでしょうか。
    では、ポーツから Apache2 をインストールする方法で説明いたします。

cd /usr/ports/www/apache2
make WITH_PROXY_MODULES=yes WITH_CACHE_MODULES=yes
make install
make clean


で、httpd.conf の方は、
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>

を書き足します。
Apache2 付属のモジュールなので、何か特別にインストールするような必要はありません。
192.168.0 の部分は、ご自分の環境に合わせて書き換えてください。