PHPでサイトにするときに、通常は直接アクセスします。
これを別のサーバーを経由して外部のサイトへアクセスする方法を紹介します。
アクセスしたサイトのサーバーには、経由したサーバーのログが残るため、アクセス元Webサーバーの履歴は残りません。
履歴を残したくないときや、負荷を分散させたいとき、何かしらのIP判定から逃れたい時など、直接アクセスしたくないときなどに使用します。
通常は、クライアントとWWWサーバーの間に存在します。
クライアントPCからの指示を受け取り、インターネット上のWEBサイトのHTML情報などを取得してクライアントに返します。
そのため通常は、「クライアント⇔プロキシサーバー⇔WWWサーバー」となりますが、今回は「Webサーバー⇔プロキシサーバー⇔WWWサーバー」といった配置になります。
PHPのfile_get_contentsを使用してプロキシサーバー経由でWebサイトにアクセスし、データを取得するサンプルコードを紹介します。
$proxy = array(
"http" => array(
"proxy" => "tcp://xxx.xxx.xxx.xxx:8080",
'request_fulluri' => true,
),
);
$proxy_context = stream_context_create($proxy);
echo file_get_contents("http://dog.tele.jp/lookup.php/", false, $proxy_context);
今回、http://dog.tele.jp/lookup.php/の接続元IPアドレスをチェックするサイトを使用して検証させていただきました。
プロキシサーバー経由でアクセスしたため、接続元IPが使用したProxyのIPで表示されます。