0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

プロキシサーバを作成してみる (docker使用)

Last updated at Posted at 2025-02-24

はじめに

本記事はインフラ未経験者がとりあえずサーバー立ててみよう!と思い、アウトプットがてら作成した記事です。
そこまで深い情報は掲載されておりませんのであしからず。

※本記事で行った作業はdockerが使用できる環境にあることが前提となります。

プロキシサーバーとは

↓参考文献です。
プロキシサーバーとは?使用上のメリットと4つの注意点

手順1 (サーバー作成準備)

クライアント + 2台のサーバーが必要なので docker で作成していきます。

※今回 debian で作成するので以下を実行

コマンドプロンプト
docker pull debian

ここからはコマンドプロンプトを3枚開いて作業します。

以下を実行

クライアント (CMD1)
docker run -it --name client debian /bin/bash

※ローカルのポートは空いているポートなら何でもよいです。今回は(8080)を使用

WEBサーバー (CMD2)
docker run -it --name web -p 8080:80 debian /bin/bash

※今回 Squid で作成するのでデフォルトのポート(3128)を指定しています。ローカルは空いていれば...(以下略)
参考:デフォルトでは、Squid プロキシーサービスは、すべてのネットワークインターフェイスの 3128 ポートをリッスンします。

プロキシサーバー (CMD3)
docker run -it --name proxy -p 3128:3128 debian /bin/bash

手順2 (WEBサーバー作成)

apache をインストールします。

WEBサーバー (CMD2)
#パッケージリスト更新
apt-get update
#apacheインストール
apt-get install apache2
#起動確認 Starting Apache... がでれば成功
/etc/init.d/apache2 start

localhost:8080にアクセスして確かめます。
以下が表示されればOK
image.png

手順3 (プロキシサーバーの作成)

Squid をインストールします。

プロキシサーバー (CMD3)
#パッケージリスト更新
apt-get update
#Squidインストール
apt-get install Squid
#エディタインストール 今回vim
apt-get install vim
#起動確認 Starting Squid... がでれば成功
/etc/init.d/squid start

Squidの設定を変更します。

/etc/squid/squid.conf
#vi /etc/squid/squid.confを実行して編集
# /http_access deny allで検索して対象行を探す

#編集前
http_access deny all
#編集後
http_access allow all

設定変更したので Squid を再起動

プロキシサーバー (CMD3)
/etc/init.d/squid restart

手順4 (プロキシ経由でWebサーバーへアクセス)

クライアント (CMD1)
#curlをインストール
apt-get install curl

# ➀プロキシ経由で接続
curl -s http://[コンテナ:WEBのIP]:80 -x http://[コンテナ:proxyのIP] | grep "<title>"
#結果は以下になればOK
#<title>Apache2 Debian Default Page: It works</title>

# ➁直接接続
curl -s http://[コンテナ:WEBのIP]:80 | grep "<title>"

# ※コンテナに割り当てられているIPアドレスは以下で出力されるJSONの"IPAddress"で確認できます。
docker inspect -f "{{json .NetworkSettings.Networks}}" [コンテナ名]

WEBサーバーのアクセスログを確認してみる。
プロキシサーバーからのIPとクライアントPCのIPが記載されているはず

WEBサーバー (CMD2)
#最新の5行を取得
tail -n 5 /var/log/apache2/access.log

web、clientのIPが記載されていればOK
例:筆者の環境でのログ(一部抜粋) 
image.png

以上で基本的なところは終了です。

終わりに

プロキシサーバの設定(アクセス制限等)を変更するには「/etc/squid/squid.conf」を触ればよいそう。
参考:Squidのプロキシサーバ設定は、すべて/etc/squid/squid.confファイル内で行います。

本記事はここまでなので気になる方は是非。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?