Squid情報
Squidとは
Squid(スクウィッド)とはHTTP/1.0と(大部分の)HTTP/1.1の仕様を満たすC++言語で書かれたオープンソースのWebキャッシュプロキシで、HTTP、HTTPS以外にFTPなどもサポートします。
Squidは1994年にコロラド大学ボールダー校のデュエイン・ウェッセルズ氏らにより開発された Harvest Cache Daemonから派生した2つのフォークの内の1つで、Harvest Cacheと区別するため開発時にSquid(イカ)というコードネームで呼ばれていました。現在もその名称が使用されており、イメージキャラクターとしてもイカが採用されています。SquidのイニシャルバージョンであるSquid 1.0は1996年にリリースされ、オープンソースのプロジェクトとして現在も有志による開発が続けられています。
Squidは複数のWebサーバの前段に配置され、クライアントのリクエストに対してWebサーバの代わりにレスポンスを行うことでサーバの負荷を分散させ、高速で安定したパフォーマンスを提供することができます。また、ネットワーク内のクライアントからのリクエストをSquidが中継することによってアクセス制御やロギング機能を提供します。
主な特徴
Squidには用途に合わせて以下のような使用方法があります。
フォワードプロキシ(Forward Proxy)

多くの場合、フォワードプロキシはクライアントと同一のネットワーク上に配置されます。クライアントが外部のWebサーバへリクエストを出す際にはクライアント側のプロキシ設定に基づきSquidにアクセスし、Squidがクライアントに変わってWebサーバにアクセスします。そうすることでSquidはWebサーバから取得したコンテンツをクライアントに返すと同時に自身のサーバ内にキャッシュします。これにより同一ネットワーク内の他のクライアントがSquid経由で同じWebページにアクセスした場合にSquidがキャッシュしたWebページの情報をクライアントに返すことができるようになります。
フォワードプロキシ導入のメリット
- Webコンテンツ取得の速度向上
- ネットワーク帯域の節約
- 内部ネットワークからのアクセス先を制限することが可能
リバースプロキシ(Reverse Proxy)

リバースプロキシとして動作するSquidはWebサーバの前段に配置され、クライアントからのリクエストを受けます。その後、SquidはWebサーバにアクセスしてコンテンツを取得してクライアントに返すと同時に自身のサーバ内にコンテンツをキャッシュします。以降、クライアントからの同じリクエストに対してSquidはWebサーバにアクセスせず、キャッシュ済みのコンテンツを返すことができるようになります。
リバースプロキシ導入のメリット
- Webサーバの負担分散
- 条件によるアクセスサーバの振り分け
- SSL/TLSのオフロード
透過プロキシ(Transparent Forward Proxy)
透過プロキシはインターセプトプロキシとも呼ばれています。フォワードプロキシと同じく外部のWebサーバへのリクエストを中継しますが、クライアント側でプロキシ設定を行う必要はありません。特定のポートへ向けたリクエストはネットワークの出口に設置されたルータにより透過プロキシであるSquidへ振り分けられ、SquidがWebページへアクセスします。
透過プロキシ導入のメリット
-
Webコンテンツ取得の速度向上
- クライアント側の設定が不要
- 内部ネットワークからのアクセス先を制限することが可能
その他、色々な用途に合わせた設定例がSquid Wikに公開されています。
Squidのメリット・デメリット
Squidのメリット・必要性
フォワードプロキシによるWebコンテンツの速度向上、ネットワーク帯域の節約、アクセス制御によるセキュリティの向上、リバースプロキシによる Webサーバの負荷分散など多くの機能がさまざまなニーズに合わせてすぐに利用可能です。
オープンソースであるためコストの削減にも貢献します。
Squidのデメリット・注意点・課題
多機能で柔軟性のある設定が可能であるため学習には時間を要し、要件によっては専門的な知識が必要になる場合があります。
導入事例
Squidは高速で性能が安定したオープンソースのプロキシサーバとして中小から大規模までさまざまな業種・システムで幅広く利用されています。
類似プロダクト
WebプロキシとしてHAProxy、Nginx、Varnish、Apache Traffic Server、Pound、TinyProxyなどがSquidと類似する機能を提供しています。
動作環境
Squidのコミュニティからはソースコードのみ配布されています。SquidをコンパイルするにはC++コンパイラが必要です。
また、以下のディストリビューションではバイナリパッケージも配布されています。
-
CentOS
- Debian
- Fedora
- Fink
- FreeBSD
- Gentoo
- NetBSD
- OpenSUSE
- Red Hat Enterprise Linux (RHEL)
MacOS、Windows版のバイナリもサードパーティーから入手可能です。
Squidのライセンス
SquidはGPL(※)ライセンスの元にリリースされているソフトウェアで、ソフトウェアのコピーや配布、ソースコードの公開を原則としてソースコードの自由な改変も認められています。
※GNU General Public Licenseの略。
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。
関連OSS
-
サポート対象
Nginx
エンジンエックス。Apache HTTP Serverに次ぐ利用率で人気急上昇中の高速・高性能Webサーバです。
-
Jetty
ジェティ。100%Javaで開発されたJava Servletコンテナ/Webサーバです。
-
サポート対象
Apache HTTP Server
アパッチエイチティーティーサーバ。世界中で最も人気の高いwebサーバソフトウェアの一つです。