アプリケーションがプロキシを使ってくれるかテストをしたかったので、Dockerでsquidを立てました。
Squidは伝統的なプロキシサーバです。
以下のコマンドで3128番でユーザID: user1、パスワード: password1 で認証されるプロキシサーバが立ちます。
docker stop squid-proxy;docker rm squid-proxy;docker run -d --name squid-proxy -p 3128:3128 sameersbn/squid:latest bash -c "\ apt-get update && \ apt-get install -y apache2-utils && \ htpasswd -b -c /etc/squid/passwords user1 password1 && \ chown proxy:proxy /etc/squid/passwords && \ chown proxy:proxy /dev/stdout && \ chmod 640 /etc/squid/passwords && \ echo 'http_port 3128 auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwords auth_param basic realm Squid Proxy acl authenticated proxy_auth REQUIRED http_access allow authenticated access_log stdio:/proc/self/fd/1 squid cache_log stdio:/proc/self/fd/1 cache_store_log stdio:/proc/self/fd/1' > /etc/squid/squid.conf && \ squid -N"; docker logs -f squid-proxy
もちろん再現性を高めたり、細かく設定を変えたりするにはDockerファイルを作った方がいいです。
認証が要らない場合は以下で。
docker stop squid-proxy;docker rm squid-proxy;docker run -d --name squid-proxy -p 3128:3128 sameersbn/squid:latest bash -c "\ chown proxy:proxy /dev/stdout && \ echo 'http_port 3128 http_access allow all access_log stdio:/proc/self/fd/1 squid cache_log stdio:/proc/self/fd/1 cache_store_log stdio:/proc/self/fd/1' > /etc/squid/squid.conf && \ squid -N"; docker logs -f squid-proxy