Proxyサーバーの構築

エンドユーザーの環境再現のために急遽検証用Proxyサーバーを構築した時のメモ。
ProoxyというとSquidとなるが、今回は時間がなかったためにMAC OS X上で動作しているApacheを
Proxyとして設定。(事前にMAC OS Xのrootユーザーを有効にしておき、rootユーザーで作業)

  • 設定ファイルは/etc/apache2/httpd.conf
  • Apacheの起動はhttpd -k start
  • Apacheの停止はhttpd -k stop
  • Apachectlは/usr/sbin
  • ログは/var/log/apache2

httpd.confの設定内容

proxy関連モジュールが有効であることを確認

LoadModule proxy_module libexec/apache2/mod_proxy.so
LoadModule proxy_connect_module libexec/apache2/mod_proxy_connect.so
LoadModule proxy_ftp_module libexec/apache2/mod_proxy_ftp.so
LoadModule proxy_http_module libexec/apache2/mod_proxy_http.so

待ち受けを8080に設定

Listen 8080

Proxyモジュールの設定

<IfModule proxy_module>
	ProxyRequests On
	ProxyVia On
	CustomLog "/private/var/log/apache2/proxy_log" combined
	<Proxy *>
		Order deny,allow
		Deny from all
		Allow from 192.9.
	</Proxy>
</IfModule> 

上記の設定でHTTP、HTTPS共に動作を確認

次にProxyに認証機能(とりあえずBasic認証)を追加。
最初にパスワードファイルを作成(ユーザー、パスワードはtest/test)

htpasswd -c /etc/apache2/.htpasswd test
New password:
Re-type new password:

httpd.confの修正

<IfModule proxy_module>
	ProxyRequests On
	ProxyVia On
	CustomLog "/private/var/log/apache2/proxy_log" combined
	<Proxy *>
		Order deny,allow
		Deny from all
		Allow from 192.9.
		AuthType Basic
		AuthUserFile /etc/apache2/.htpasswd
		AuthName "Enter Your ID and Password."
		Require valid-user
	</Proxy>
</IfModule> 

以上で終了