はじめに
本記事はインフラ未経験者がとりあえずサーバー立ててみよう!と思い、アウトプットがてら作成した記事です。
そこまで深い情報は掲載されておりませんのであしからず。
※本記事で行った作業はdockerが使用できる環境にあることが前提となります。
プロキシサーバーとは
↓参考文献です。
プロキシサーバーとは?使用上のメリットと4つの注意点
手順1 (サーバー作成準備)
クライアント + 2台のサーバーが必要なので docker で作成していきます。
※今回 debian で作成するので以下を実行
docker pull debian
ここからはコマンドプロンプトを3枚開いて作業します。
以下を実行
docker run -it --name client debian /bin/bash
※ローカルのポートは空いているポートなら何でもよいです。今回は(8080)を使用
docker run -it --name web -p 8080:80 debian /bin/bash
※今回 Squid で作成するのでデフォルトのポート(3128)を指定しています。ローカルは空いていれば...(以下略)
参考:デフォルトでは、Squid プロキシーサービスは、すべてのネットワークインターフェイスの 3128 ポートをリッスンします。
docker run -it --name proxy -p 3128:3128 debian /bin/bash
手順2 (WEBサーバー作成)
apache をインストールします。
#パッケージリスト更新
apt-get update
#apacheインストール
apt-get install apache2
#起動確認 Starting Apache... がでれば成功
/etc/init.d/apache2 start
localhost:8080にアクセスして確かめます。
以下が表示されればOK
手順3 (プロキシサーバーの作成)
Squid をインストールします。
#パッケージリスト更新
apt-get update
#Squidインストール
apt-get install Squid
#エディタインストール 今回vim
apt-get install vim
#起動確認 Starting Squid... がでれば成功
/etc/init.d/squid start
Squidの設定を変更します。
#vi /etc/squid/squid.confを実行して編集
# /http_access deny allで検索して対象行を探す
#編集前
http_access deny all
#編集後
http_access allow all
設定変更したので Squid を再起動
/etc/init.d/squid restart
手順4 (プロキシ経由でWebサーバーへアクセス)
#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が記載されているはず
#最新の5行を取得
tail -n 5 /var/log/apache2/access.log
web、clientのIPが記載されていればOK
例:筆者の環境でのログ(一部抜粋)
以上で基本的なところは終了です。
終わりに
プロキシサーバの設定(アクセス制限等)を変更するには「/etc/squid/squid.conf」を触ればよいそう。
参考:Squidのプロキシサーバ設定は、すべて/etc/squid/squid.confファイル内で行います。
本記事はここまでなので気になる方は是非。