Windows10で開発・検証用のプロキシサーバを構築

本番環境でプロキシを介して通信を行うアプリを開発したいが、開発環境ではプロキシがない…
そんな時のためにローカルに検証用のプロキシサーバを構築してみます。

概要

  • Windows 10(64ビット)環境を使用します。
  • プロキシサーバとしてWindows向けのApacheを使用します。使用するバージョンは、Apache Loungeの2.4.43-win64-VS16です。
  • ここではあくまでの開発環境での検証を目的としているため、最低限の設定内容になっています。本番使用を想定する場合はセキュリティや性能等の考慮した設定を検討してください。

構築手順

  1. Windows用のApacheバイナリをダウンロード
    Apacheのダウンロードページから[Files for Microsoft Windows]のリンクを開きます。
    ApacheHaus, Apache Lounge等のいくつかのバージョンがありますが、ここではApache Loungeの[httpd-2.4.43-win64-VS16.zip]をダウンロードします。
  2. ダウンロードファイルの展開
    今回使用するファイル群は[C:\devproxy]配下に置くルールとして、このフォルダを作成後にダウンロードしたzipファイルを展開します。
    (結果として[C:\devproxy\httpd-2.4.43-win64-VS16\Apache24]が作成されるイメージです。)
  3. httpd.confの編集
    一旦、httpd.confをhttpd.conf.org等に退避し、httpd.confを次のように編集します。
    詳細はApacheのリファレンスを参考のこと。
    • 6行目: Apacheの基準フォルダ
    • 14行目: ローカルホスト(ループバックアダプタ)の8888ポートで要求を受け付ける。(ループバックアダプタを使用するため、別のPCからのアクセスは不可。)
    • 19,22行目: フォワードプロキシとして動作するためにはmod_proxy_connectと、このモジュールが依存するmod_proxyを有効にする。(なお、mod_proxy_http等の他のモジュールは不要であった。)
    • 36行目: 起動時の警告を回避するために適当な名前を指定した。
    • 39-47行目: フォワードプロキシを有効にするためにProxyRequestsをOn、経由したプロキシを示すViaヘッダを付与するためにProxyVia Onを指定します。
      (リファレンスのサンプル値を使用しています。ProxyViaの既定はOffであり、宣言を消したりOffにしても影響はないと思われる。)
  4. apacheの起動
    次のhttp.exeを実行します。

    C:\devproxy\httpd-2.4.43-win64-VS16\Apache24\bin\httpd.exe

動作確認

アプリで確認する場合

アプリでプロキシ設定を行い、通信を試行します。
その後、access.logを開き、通信のログが記録されていることを確認します。

ブラウザで確認する場合

Windowsの設定(Windowsキー+i)を開き、[ネットワークとインターネット]の[プロキシ]を選択します。
[プロキシサーバを使う]をOnに変更し、プロキシサーバを指定し、[保存]をクリックします。
その後、ブラウザで任意のWebアクセスが行えることや、上記と同様にaccess.logにログが記録されていることを確認します。

この設定を行うとWindows上の様々なアプリの通信で、今回構築したプロキシが使われます。
大事なセッションがある場合は終了してから本手順を実施してください。
また、動作確認後、プロキシの設定を元に戻すことを忘れずに。