ProxyRemote ディレクティブを使って多段プロキシを構成してみた

こんにちは。サイオステクノロジーの貝野です。

プロキシサーバとして Apache を使用している環境において、さらに別のプロキシサーバを経由してインターネット(接続先サーバ)に接続したい場合、ProxyRemote というディレクティブを使用します。
今回は、ProxyRemote ディレクティブを使って別のプロキシサーバを経由させる検証をしてみました。

■ 環境

今回、検証を行なった環境の構成は以下の通りです。

————————-
[クライアント] <---> [プロキシサーバ1] <---> [プロキシサーバ2] <---> [接続先サーバ]
————————-

クライアント

  • IP アドレス:192.168.1.10
  • OS のバージョン:CentOS7.6

プロキシサーバ1

  • IP アドレス:192.168.1.101
  • OS のバージョン:CentOS7.6
  • Apache のバージョン:httpd-2.4.6-90.el7

プロキシサーバ2

  • IP アドレス:192.168.1.102
  • OS のバージョン:CentOS7.6
  • Apache のバージョン:httpd-2.4.6-90.el7

接続先サーバ

  • IP アドレス:192.168.1.20
  • OS のバージョン:CentOS7.6
  • Apache のバージョン:httpd-2.4.6-90.el7

■ 設定・動作確認 (リバースプロキシの場合)

各サーバの設定を、それぞれ以下の様にします。

プロキシサーバ1 (192.168.1.101)

  • プロキシのポートに 10080 を指定
  • ProxyPass に “http://<接続先サーバの IP アドレス>/” を指定
  • ProxyRemote に “http://<プロキシサーバ2の IP アドレス>:<ポート番号>” を指定

プロキシサーバ2 (192.168.1.102)

  • プロキシのポートに 10080 を指定
  • ProxyPass に “http://<接続先サーバの IP アドレス>/” を指定

接続先サーバ (192.168.1.20) のコンテンツ

クライアント (192.168.1.10) から接続先サーバへアクセス

この時、プロキシサーバ1 およびプロキシサーバ2 の access_log には、それぞれ以下の情報が出力されます。

プロキシサーバ1

プロキシサーバ2

■ 設定・動作確認 (フォワードプロキシの場合)

各サーバの設定を、それぞれ以下の様にします。

プロキシサーバ1

  • プロキシのポートに 10080 を指定
  • Proxy に “http://<接続先サーバの IP アドレス>/*” を指定
  • Allow from にクライアントの IP アドレスを指定
  • ProxyRemote に “http://<プロキシサーバ2の IP アドレス>:<ポート番号>” を指定

プロキシサーバ2

  • プロキシのポートに 10080 を指定
  • Proxy に “http://<接続先サーバの IP アドレス>/*” を指定
  • Allow from にプロキシサーバ1の IP アドレスを指定

クライアント (192.168.1.10) から接続先サーバへアクセス

この時、プロキシサーバ1 およびプロキシサーバ2 の access_log には、それぞれ以下のログが出力されます。

プロキシサーバ1

プロキシサーバ2

■ 最後に

Apache でプロキシサーバを構成する場合において、最も基本的な多段プロキシの設定をご案内しました。
なお今回は Apache 2.4 系で動作検証しましたが、Apache 2.2 系でも同様の設定を使うことができます。

>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメント投稿

メールアドレスは表示されません。


*