Database JUNKY

MySQL,MariaDBを中心としたブログです

Squidでリバースプロキシを構成する

リバースプロキシを構成する意味は、一言で言えば負荷軽減です。たとえば画像等の静的ファイルをアクセスする際にいちいちwebサーバとか画像サーバとかにアクセスが入ると、それだけで負荷になってしまいますよね、今回紹介する、Squidは、それは静的コンテンツを、キャッシュしてwebサーバに対するアクセスを軽減するのが目的のデーモンです。

すこし過去の構成ですが、こんなイメージでsquidを配置するイメージです。

  1. squidのインストール [root@yamato ~]# yum -y install squid

2.squid設定ファイル編集 * vi /etc/squid/squid.conf

squid(192.168.10.51)で、リクエストを受付、webサーバでキャッシュする、なお、当サイトはバーチャルホストを利用しているため、vhostのオプションをつける

Squid normally listens to port 3128

http_port 192.168.10.51:80 accel defaultsite=192.168.10.52 vhost

▼クライアントからのリクエストをすべて受け付ける

http_access allow localhost

http_access deny all

http_access allow all

▼キャッシュ対象サーバの設定 Web サーバーと Squid がやりとりをするための設定です。この例では、Squid は、192.168.10.52の Web サーバーの 80 番ポートにリクエストを送ります。 cache_peer ①192.168.10.52 ②parent ③80 ④0 ⑤no-query ⑥originserver ⑦login=PASS

①ターゲットのWEBサーバを指定します。 ②自分がキャッシュを持っていない場合にどの様にフォワードするかを指定します。 ▼parent リクエストをフォワードしてフォワード先にデータがない場合は自分は何もしない(指定したホストが変わりにファイルを探しにいく) ▼sibling リクエストをフォワードしてフォワード先にデータがない場合は自分でファイルを探しに行く といった違いがあるようです ▼multicast リクエストを複数のホストにフォワードします。 ③ プロキシとしてListenしてるポートの番号 ④icpをListenしているポートの番号(0は無効) ⑤指定したホストへicpのパケットを送らない ⑥オリジナルのWEBサーバである ⑦プロキシ経由でのapacheベーシック認証を通過させます

3.squidの起動 [root@yamato ~]# /etc/init.d/squid start

4.自動起動に設定 [root@yamato ~]# /sbin/chkconfig squid on