- クライアントでHTTP Proxyを利用した際、クライアントの/etc/hostsを書き換えても反映されなかったのでAWS上で実験して確認してみた
実験結果と考察
- 実験結果:proxyを通るリクエストはクライアントの/etc/hostsが反映されない
- 考察:proxyを通る場合はproxyがDNSリゾルバになりクライアントの/etc/hostsは用いられない(今一ピッタリとした説明したサイトが見つけられなかったので推測)
実験環境
-
サーバーとして以下の2つのEC2インスタンスを用意(両方とも80番ポート開放)
-
proxyサーバ
-
クライアント
-
OS:Amazon Linux AMI 2012.09.1 64bit
-
httpd-2.2.23
実験前準備
- proxyサーバ環境を構築する
$ sudo yum install httpd -y
$ sudo vi /etc/conf/httpd.conf
# => 以下のようになるようにコメントを外す
<IfModule mod_proxy.c>
ProxyRequests On
<Proxy *>
Order deny,allow
Deny from all
Allow from all
</Proxy>
</IfModule>
# sudo /etc/init.d/httpd start
- クライアント環境を構築する(80番ポート開放)
$ sudo yum install httpd -y
$ echo "hogeee" | sudo tee /var/www/html/index.html
$ sudo /etc/init.d/httpd start
$ echo "[クライアントのPublicIP] www.example.com" | sudo tee -a /etc/hosts
$ curl www.example.com
hogeee
実験1(クライアントの/etc/hostsを書き換えてproxyを使ってアクセス)
- クライアントで実行
$ export http_proxy=http://[proxyサーバのPublicIP]:80
$ curl www.example.com
# => 何も出力されない
実験2(proxyサーバの/etc/hostsを書き換えてproxyを使ってアクセス)
- proxyサーバで実行
$ echo "[クライアントのPublicIP] www.example.com" | sudo tee -a /etc/hosts
- クライアントで実行
$ export http_proxy=http://[proxyサーバのPublicIP]:80
$ curl www.example.com
hogeee
実験3(no_proxyを設定してproxyを使ってアクセス)
- クライアントで実行
$ export http_proxy=http://[proxyサーバのPublicIP]:80
$ export no_proxy=www.example.com
$ curl www.example.com
hogeee