![]() イカプロジェクトロゴ[1] | |
| 開発者 | デュアン・ウェッセルス、ヘンリク・ノルドストローム、アモス・ジェフリーズ、アレックス・ルースコフ、フランチェスコ・ケモリ、ロバート・コリンズ、グイド・セラッシオおよびボランティア[2] |
|---|---|
| 初回リリース | 1996年7月 |
| 安定リリース | 6.12 [3]
/ 2024年10月11日 |
| リポジトリ | github.com/squid-cache/squid |
| 書かれた | C++ [4] |
| オペレーティング·システム | BSD、Linux、Unix、Windows [5] |
| タイプ | プロキシサーバー |
| ライセンス | GPL 2.0以降[6] |
| Webサイト | squid-cache.org より |

Squid は、キャッシュおよび転送を行う HTTP Web プロキシです。繰り返しのリクエストをキャッシュしてWeb サーバーを高速化したり、ネットワーク リソースを共有するグループのWorld Wide Web (WWW)、ドメイン ネーム システム(DNS)、その他のネットワーク検索をキャッシュしたり、トラフィックをフィルタリングしてセキュリティを強化したりと、さまざまな用途に使用できます。主にHTTPとファイル転送プロトコル(FTP) に使用されますが、Squid には、 Internet Gopher、Secure Sockets Layer (SSL)、[7] Transport Layer Security (TLS)、Hypertext Transfer Protocol Secure ( HTTPS ) など、他のプロトコルも限定的にサポートされています。Squid は、 SOCKS サポートを提供するために使用できる Privoxyとは異なり、 SOCKSプロトコルをサポートしていません。
SquidはもともとUnix系システム上でデーモンとして動作するように設計されました。Windows版はバージョン2.7まで維持されていました。Windowsで利用できる新しいバージョンはCygwin環境を使用しています。[8] [9] SquidはGNU General Public Licenseに基づいてリリースされたフリーソフトウェアです。
歴史
SquidはもともとHarvestオブジェクトキャッシュとして開発され、[7]コロラド大学ボルダー校のHarvestプロジェクトの一部でした。[10] [11]このプログラムのさらなる作業はカリフォルニア大学サンディエゴ校で完了し、国立科学財団からの2つの助成金によって資金提供されました。[12] Duane Wesselsは「Harvestの最後の商用化前バージョン」をフォークし、NetCacheとなったCached 2.0と呼ばれる商用フォークとの混同を避けるためにSquidに名前を変更しました。 [ 13] [14] Squidバージョン1.0.0は1996年7月にリリースされました。[13] SquidプロキシサーバーのポートであるSquidNTは、2006年9月にメインのSquidプロジェクトに統合されました。[15]
Squid は現在、ほぼボランティアの努力によって開発されています。
2023年10月、Squidには最初の報告から2年半にわたって修正されていない35件のセキュリティ脆弱性が残っていることが明らかになりました。[16]
基本機能
Squid プロキシ サーバーをインストールしたら、Web ブラウザーを設定してそれをプロキシHTTP サーバーとして使用できるようにすることができます。これにより、Squid は返されたドキュメントのコピーを保持できるようになり、同じドキュメントを繰り返し要求した場合に、アクセス時間と帯域幅の消費量を削減できます。これは、インターネット サービス プロバイダーが顧客への速度を向上させたり、インターネット接続を共有するLANで役立ちます。キャッシュ サーバーは Web サービス オペレーターによって制御されるため、キャッシュ プロキシはユーザーを匿名化しません。匿名化プロキシと混同しないでください。
クライアント プログラム (例: ブラウザ) は、使用するプロキシ サーバーを明示的に指定する必要があります (ISP の顧客の場合が一般的)。または、追加の構成なしでプロキシを使用することもできます (「透過キャッシュ」)。この場合、送信されるすべての HTTP 要求は Squid によってインターセプトされ、すべての応答がキャッシュされます。後者は、通常、企業での設定 (すべてのクライアントが同じ LAN 上にある) であり、前述のプライバシーに関する懸念が生じることがよくあります。
Squid には、クライアントのHTTP リクエストの特定のヘッダー フィールドを無効にしたり変更したりするなど、接続を匿名化するのに役立つ機能がいくつかあります。これらの設定の有無や設定内容は、Squid を実行しているコンピューターを管理する人次第です。Squid を透過的に使用するネットワークを介してページをリクエストする人は、この情報が記録されているかどうかわからない場合があります。[17]少なくとも英国の組織では、コンピューターやインターネット接続が監視されている場合は、ユーザーに通知する必要があります。[18]
リバースプロキシ
上記の設定は、限られた数のクライアントに対して無制限の数のWeb サーバーのコンテンツをキャッシュする、典型的な設定です。別の設定は、「リバース プロキシ」または「Web サーバー アクセラレーション」( http_port 80 accel vhostを使用) です。このモードでは、キャッシュは、限られた数 (または 1 台だけ) の Web サーバーに対して無制限の数のクライアントにサービスを提供します。
たとえば、slow.example.comが「実際の」Web サーバーで、www.example.comがそれを「高速化」する Squid キャッシュ サーバーである場合、www.example.comから初めてページが要求されると、キャッシュ サーバーはslow.example.comから実際のページを取得しますが、その後の要求では、保存されたコピーをアクセラレータから直接取得します (設定可能な期間、保存されたコピーは破棄されます)。その結果、クライアントによるアクションがなくても、ソース サーバーへのトラフィックが減り、CPU とメモリの使用量が減り、帯域幅の必要性が減ります。ただし、これは、すべての要求がリバース プロキシから送信されたように見えるため、追加の設定を行わないと、ソース サーバーがトラフィック数を正確に報告できないことを意味します。ソース サーバーで報告を適応させる方法は、リバース プロキシによって報告されるX-Forwarded-For HTTP ヘッダーを使用して、実際のクライアントの IP アドレスを取得することです。
1 台の Squid サーバーが同時に通常のプロキシとリバース プロキシとして機能することも可能。たとえば、企業が Web サーバー上で自社の Web サイトをホストし、Squid サーバーがクライアント (企業の外部から Web サイトにアクセスする顧客) と Web サーバー間のリバース プロキシとして機能するとします。同じ Squid サーバーが従来の Web キャッシュとして機能し、企業内のクライアント (ワークステーションからインターネットにアクセスする従業員など) からの HTTP 要求をキャッシュすることで、Web アクセスを高速化し、帯域幅の需要を減らすことができます。
メディア範囲の制限
たとえば、HTTP プロトコルの機能の 1 つは、参照されているリソース内のデータの範囲に要求を制限することです。この機能はYouTubeなどのビデオ ストリーミング Web サイトで広く使用されており、ユーザーがビデオの進行状況バーの中央をクリックすると、サーバーはファイルの途中からデータを送信し始めることができます。ファイル全体を最初から送信して、ユーザーが前のデータの読み込みが完了するのを待つ必要はありません。
部分ダウンロードは Microsoft Windows Updateでも広く使用されており、非常に大きな更新パッケージをバックグラウンドでダウンロードし、ユーザーがコンピューターの電源を切ったりインターネットから切断したりした場合に、ダウンロードの途中で一時停止することができます。
Metalinkダウンロード形式を使用すると、クライアントは部分的な要求を発行し、それを複数のミラーに分散することで、セグメント化されたダウンロードを実行できます。
Squid は、部分的なリクエストを元の Web サーバーに中継できます。部分的なリクエストをキャッシュから高速で満たすには、Squid のストレージに同じオブジェクトの完全なコピーがすでに存在している必要があります。
プロキシビデオユーザーがビデオストリームを視聴していて、ビデオが完全にダウンロードされる前に別のページに移動した場合、Squidは部分的なダウンロードを再利用のために保持することができず、データを破棄するだけです。このようなダウンロードを強制的に継続してキャッシュするには、特別な設定が必要です。[19]
サポートされているオペレーティングシステム
Squid は、以下を含む多くのオペレーティング システムをサポートしています。
- エイエックス
- BSDI
- デジタル Unix
- フリーBSD
- FreeBSD 刑務所
- オープンWRT
- ラズパイ
- Docker (ソフトウェア)
- ウブントゥ
- ペフセンス
- オプセンス
- カリリナックス
- セントOS
- HP-UX
- アイリックス
- リナックス
- レッドハットエンタープライズリナックス
- SUSE Linux
- アーチリナックス
- リナックスミント
- デビアン
- Palm のwebOS
- macOS
- ネットBSD
- ネクストステップ
- オープンBSD
- OS/2(ArcaOSおよびeComStationを含む)[20]
- SCO オープンサーバー
- ソラリス
- Unixウェア
- Microsoft Azureおよび Microsoft Nano Server
- ウィンドウズ[21]
参照
- ホストベースの HTTP アクセラレーションについて説明するWeb アクセラレータ
- クライアント側プロキシについて説明するプロキシサーバー
- オリジン側プロキシについて説明するリバースプロキシ
- ウェブサーバーの比較
- Webキャッシュ通信プロトコルCisco WCCPはSquidでも機能します
- Riverbed Technology RiOSがSquidをサポート
- Squid Web Proxy 用のJunos OS JSA DSM は、すべてのキャッシュおよびアクセス ログ イベントを記録します。
参考文献
- ^ 「Squid Project ロゴ」。2014年7月6日閲覧。
- ^ 「Squid プロジェクトを管理するのは誰ですか?」
- ^ “squid-6.12”. 2024年10月11日. 2024年10月13日閲覧。
- ^ squid-cache/squid、Squid、2022年7月27日、 2022年7月27日閲覧
- ^ 「Squidに最適なOSは何ですか?」
- ^ 「Squid ライセンス」。
- ^ ab C.Mic Bowman、Peter B. Danzig、Darren R. Hardy、Udi Manper、Michael F. Schwartz、「The Harvest 情報検出およびアクセス システム」、Computer Networks and ISDN Systems、第 28 巻、第 1 ~ 2 号、1995 年 12 月、119 ~ 125 ページ。doi:10.1016/0169-7552(95)00098-5
- ^ 「Squid for Windows」。GitHub。2024年2月。
現在のビルドは、Cygwin Windows 64ビット用の最新のSquid 4ビルドに基づいています。
- ^ 「Squid-cache.org ナレッジ ベース」。Windows
上の Squid
- ^ Squid のウェブサイトにある Squid の紹介
- ^ ハーベスト キャッシュが「httpd アクセラレータ」として利用可能になりました。Mike Schwartz による http-wg メーリング リスト、1995 年 4 月 4 日火曜日、Brian BehlendorfによってApache HTTP Server開発者のメーリング リストに転送されました。
- ^ 「Squid スポンサー」。2007 年 5 月 11 日のオリジナルからアーカイブ。2007年2 月 13 日閲覧。NSF
は 1996 年から 2000 年まで Squid 開発の主な資金提供元でした。Advanced Networking Infrastructure and Research (ANIR) 部門を通じて受け取った 2 つの助成金 (#NCR-9616602、#NCR-9521745) は、カリフォルニア大学サンディエゴ校によって管理されました。
- ^ ab Duane Wessels Squid と ICP: 過去、現在、そして未来、オーストラリア Unix ユーザー グループの議事録。1997 年 9 月、オーストラリア、ブリスベン
- ^ "netcache.com". 1996年11月12日時点のオリジナルよりアーカイブ。2012年8月7日閲覧。
- ^ 「Squid FAQ: Squid は Windows で動作しますか?」
- ^ 「Squid キャッシュ プロキシに 55 件の脆弱性と 35 件の 0days」。2023 年 10 月 11 日。
- ^ 詳細については、header_accessおよびheader_replaceのドキュメントを参照してください。
- ^ 例えば、「職場でのコンピュータ監視」と「あなたのプライバシー」を参照
- ^ 「Squid 設定リファレンス」 。2012年11 月 26 日閲覧。
- ^ OS/2 ポート、Paul Smedley 著、OS/2 ポート
- ^ 「ナレッジベース/Windows - Squid Web プロキシ Wiki」。
さらに読む
- ウェッセルズ、デュアン (2004)。『Squid: The Definitive Guide』。オライリーメディア。ISBN 978-0-596-00162-9。
- サイニ、クルビル (2011)。Squid Proxy Server 3.1: 初心者ガイド。パックト出版。ISBN 978-1-849-51390-6。
外部リンク
- 公式サイト
- イカブログ
- Squid ユーザーガイド
- DD-WRT 用 Squid 透過プロキシ
- Palm WebOS ガイド - Squid インストール ガイド
- Squid リバース プロキシ – Squid でリバース プロキシを作成する
- 設定マニュアル – ViSolve Squid 設定マニュアル ガイド
- 設定マニュアル – 権威ある Squid 設定オプション
- 「Solaris セットアップ」。2008 年 1 月 15 日時点のオリジナルよりアーカイブ。– Solaris で Squid をセットアップする
- SQUID – CentOS、Fedora、Red Hat へのインストール

