10月 212011
 
シェアする

 

Apache(VirtualHost) + Squid(ReverseProxy)でWebサーバーを公開してみた。
今回は2つのサーバーを用いて、1つはSquid,もう一つはApache用に利用した。

インターネット ⇒ Proxyサーバー ⇒ Webサーバー と行われるWebアクセスなので、
ProxyサーバーでコンテンツをキャッシュすることでWebサーバーの処理を削減したり、
WebサーバーはListenすべき80番ポートの接続元が「Proxyサーバー」のみになるなど
色々と運用上利便がいいと思う。

 

1.Squidのインストール

# yum -y install squid
# chkconfig squid on

2.Squidの設定変更

まずは、/etc/squid/ディレクトリに移動し、現在の設定のバックアップを取ります。

# cd /etc/squid
# cp -p squid.conf squid.conf.ORG

次に、squid.confをまっさらにし、viで編集します。

# :> squid.conf
# vi squid.conf
acl all src 0.0.0.0/0.0.0.0
http_access allow all 

# WebサーバーでVirtualHost利用しているので、私は「vhost」を書いています。
http_port SquidサーバーのIPアドレス:80 defaultsite=WebサーバーのIPアドレス vhost
cache_peer WebサーバーのIPアドレス parent 80 0 no-digest no-query originserver login=PASS name=myAccel

# Webアクセス先ホスト名が「.yourhost.com」で終わる場合に限り
# Webサーバーにアクセスをさせます。acl名はご自由に設定してください。
acl acl名 dstdomain .yourhost.com
cache_peer_access myAccel allow acl名
cache_peer_access myAccel deny all

# URLに「cgi-bin」または「?」を含む場合はキャッシュを参照しない
hierarchy_stoplist cgi-bin ?

# キャッシュサイズをディフォルト100MBから1000MBに変更
cache_dir ufs /var/spool/squid 1024 32 256
access_log /var/log/squid/access.log squid

# URLに「cgi-bin」や「?」を含む場合はキャッシュしない
acl QUERY urlpath_regex cgi-bin ?
cache deny QUERY coredump_dir /var/spool/squid

# 管理者のメールアドレス
cache_mgr hogehoge@hogehoge.com

# Squidが使うメモリサイズ(ディフォルト:16MB)
cache_mem 256 MB

# PURGE出来る接続元を制限
acl purge method PURGE acl src_local src 127.0.0.0/8
http_access allow purge src_local http_access deny purge

設定の変更が完了したら、Squidを起動しておきます。

# service squid start

3.ドメインのDNS情報を変更

ドメインの名前解決情報を変更し、今までWebサーバーにアクセスしていたものを、
Squidサーバーにアクセスするように名前解決時のIPアドレスを変更します。

4.Webアクセスログフォーマットを変更してます

Webアクセスログにて「%h」を用いて接続元IPを記録すると、
全ての接続元IPアドレスがSquidサーバーのIPアドレスになってしまいます
そこで「X-Forwarded-for」の情報を利用してログを出力するようにします。

Webサーバー上で「httpd.conf」を探し、アクセスログのcombinedのフォーマットを変更します。

#LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
LogFormat "%{X-Forwarded-for}i %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined

設定の変更が終わったらAapcheをリロードしておきます。

# service httpd reload

以上で完了です。

 

このエントリーをはてなブックマークに追加

コメント大歓迎!質問も受け付けておりますヽ(*´∀`)ノ