Skip to content

polipo と Google Public DNS で Web を高速化する

polipo は個人で動作させることを念頭において作成された、ローカル Proxy です。キャッシュ、HTTP 1.0 アクセスの HTTP 1.1 化、パイプライニング処理といった工夫を行い、Web アクセス(HTTP や HTTPS によるアクセス)を高速化させます。また、Web アクセスが改善すると、次は DNS による名前解決にかかる時間がボトルネックになる可能性がある為、今回は http://code.google.com/intl/ja/speed/public-dns/ を使って DNS の応答速度の向上にもチャレンジしてみます。

インストール

polipo 自体は Windows 等にも移植されているようですが、Mac OS X には polipo に GUI ラッパーを被せた dolipo というツールがリリースされています。ただし、現時点(2010/3/22)で dolipo に含まれている polipo のタイムスタンプは 2008/3/11 と、やや古いものになっていました。そこで今回は 2009/11/15 版 をソースコードからインストールします。ダウンロードしたソースコードを展開し、make、make install してインストールは完了です。

1
2
3
4
tar zxvf polipo-20091115.tar.gz
polipo-20091115
make all
sudo make install

デーモンとして起動する

デーモンとして動作させるには、以下のように実行します。polipo はデフォルトで TCP/8123 を待ち受けます。

1
sudo polipo daemonise=true logFile="/var/log/polipo.log"

Proxy を設定する

Proxy を設定するには、まず「システム環境設定 → ネットワーク → (該当ネットワーク) → 詳細 → プロキシ」と辿ります。プロキシ設定画面までたどり着けたら、左側の「構成するプロトコルを選択」から「Web プロキシ(HTTP)」をチェックし、続けて右側の「Web プロキシサーバ」に「localhost」「8123」と入力します。

file

起動時の自動起動設定

起動するごとに polipo を実行するのは面倒ですから、AppleScript を使い、自動起動設定を実施しておきます。AppleScript を作成するには「アプリケーション → ユーティリティ → AppleScript エディタ」を起動します。

1
do shell script "sudo /usr/local/bin/polipo daemonise=true logFile=\"/var/log/polipo.log\""

作成する AppleScript の保存時、ファイルフォーマットは「アプリケーション」とし、更に「実行専用」をチェックしておきます。

file

私の場合、作成した AppleScript は「polipo」という名前でアプリケーションディレクトリに保存しておきました。ついでに、深い意味は無いのですが、アイコンもなんとなく?HTTP を連想させるものに変更しておきました。後は「システム環境設定 → アカウント」を選択してからログイン時に polipo を実行したいアカウントを選び、「+」(プラス)ボタンを押して先ほど、作成した AppleScript を登録しておきます。

file

Google Public DNS を利用する

polipo で HTTP(HTTPS)アクセスが改善すると、次は DNS による名前解決がボトルネックになりがちです。そこで、http://code.google.com/intl/ja/speed/public-dns/ を使い、DNS の応答速度の改善を目指してみます。諸条件によっては、一概に「Google Public DNS を使ったから、DNS の応答速度が向上する」とは言えませんが、私の場合はかなりパフォーマンスが良くなったように感じています。

Google Public DNS を利用するには、「システム環境設定 → ネットワーク → (該当ネットワーク) → 詳細 → DNS」と辿り、左下の「+」(プラス)をクリックして Google Public DNS のアドレスである「8.8.8.8」と「8.8.4.4」を追加します。

file

もしくは、DHCP 環境であれば DHCP サーバ側の設定を変更し、配布される DNS サーバのアドレスを Google Public DNS のものへ変更しておきます。