DockerでSquidのコンテナを構築から動作確認するまでをまとめました。
「Docker」Squid(プロキシサーバ)起動手順
Squidはプロキシサーバ、ウェブキャッシュサーバなどに利用されるフリーのソフトウェアです。
Squidの用途は重複リクエストに対応したキャッシュ応答によるウェブサーバの高速化や踏み台サーバなど多岐にわたり利用できます。
今回はSquidをパッケージインストールや設定をするのではなく、Dockerのイメージコンテナを利用して簡単に利用できるまでの手順を紹介します。
Squidの構築手順は以下のページを参考にしてください。
Dockerイメージダウンロード・起動まで
今回のSquidのDockerイメージは以下URLをを参考にしています。
参考URL
https://hub.docker.com/r/minimum2scp/squid
「squid」起動
起動は以下のコマンドを実行します。
$ docker run --restart always --name proxy-squid -d -p 3128:3128 minimum2scp/squid
以下のようなエラーメッセージが発生した場合
上記コマンドを実行時エラーが発生する場合があります。
以下の例ではすでにSquidで利用するポート(3128)がすでに利用されているので使用できないということが書かれています。
$ docker run --restart always --name proxy-squid-2 -d -p 3128:3128 minimum2scp/squid 6a1cb8d60a27ba8a28544555f488ba3deb25d6663ef8a552c9214b51b0100d85 docker: Error response from daemon: driver failed programming external connectivity on endpoint proxy-squid-2 (73a6c9d8a7c0ef240424ee7c598e56ae6b0a13e87d22e17fe177d734acb7c2f6): Error starting userland proxy: listen tcp4 0.0.0.0:3128: bind: address already in use.
すでに該当のポートが使用されているため利用できない場合は以下のように別ポートを使用して起動します。
※ポート(3129)を使用してDockerコンテナを起動
$ docker run --restart always --name proxy-squid -d -p 3129:3128 minimum2scp/squid
「squid」起動確認
「squid」コンテナが正常に起動していることを確認します。
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f27a7d7e95a1 minimum2scp/squid "/opt/init-wrapper/s…" 8 minutes ago Up 8 minutes 22/tcp, 0.0.0.0:3129->3128/tcp, :::3129->3128/tcp proxy-squid
ファイイアウォールで対象ポート「3128」が許可されていることを確認します。
許可されていない場合は、ポートを開放します。
$ firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: cockpit dhcpv6-client http https postgresql ssh ports: 3128/tcp protocols: forward: no masquerade: yes forward-ports: source-ports: icmp-blocks: rich rules:
「Squid」プロキシサーバーを利用した動作確認コマンド
ローカルPCで、以下コマンドを実行します。
ローカルPCの3129ポートを指定し、Googleへのアクセスを確認します。
$ curl --proxy http://localhost:3129 https://google.com <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> <TITLE>301 Moved</TITLE></HEAD><BODY> <H1>301 Moved</H1> The document has moved <A HREF="https://www.google.com/">here</A>. </BODY></HTML>
上記のように正常に対象URLへのアクセスができたことが確認できます。
「Squid」プロキシサーバのログ確認
「Squid」プロキシサーバ側でのログを確認します。
以下のコマンドを使用し、squidコンテナへアクセスします。
$ docker exec -it proxy-squid /bin/bash root@f27a7d7e95a1:/#
アクセスログ
アクセスろぐは以下コマンドで「access.log」を確認します。
root@f27a7d7e95a1:/# cat /var/log/squid/access.log 1649313679.845 91 172.17.0.1 TCP_TUNNEL/200 8044 CONNECT google.com:443 - HIER_DIRECT/172.217.161.78 -
プロキシサーバーを経由したGoogleへのアクセスログが確認できます。
Dockerの「Squid」プロキシサーバの構築・動作確認手順は以上となります。
Dockerを構築するならVPSがおすすめです。
エンジニアのオンライン学習
ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。
おすすめオンライン教材 | |
自宅で学習ができるオンラインスクール | |
ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。
コメントを残す