WEBrickも入れてみた
京ぽん2用Linux俺サーバの続き。
airproxyでは、HTMLの削減設定は一律であり、サイト毎にカスタマイズが出来ないことから、airproxyの上段にもう1つプロキシを設けるような、多段構成にすることを思いつく。
目に付いたのが、Rubyによる方法。
Rubyは国産のオブジェクト指向スクリプト言語で、直感的な言語仕様が特徴。
その中にライブラリとして、WEBrick という汎用HTTPサーバーフレームワークがある。
これを使えばHTTPサーバやHTTPプロキシサーバが簡単に作成できる。
ただし、このプロキシフレームワークだけでは、ただ中継するだけでキャッシュなどの機能はない。
そのへんは自分で作っていくわけだが、単なるWEBサーバでは出来ないような面白いことができる。
実装は下記のページを参考にしてやってみた。簡単。
・Rubyist Magazine - WEBrickでプロキシサーバを作って遊ぶ
・えとブログ(2006-02-10)
方法論としては、2つ目の方と同じく、WEBrick::HTTPProxyServerを継承したクラスを作成することとした。
あとはプログラム内に、アクセス先のサイト毎にカスタマイズを加えていく。
基本的には、scriptやlinkタグ、スタイルシートなどの除去。
あとはよく見るところのサイト毎に要らない広告や情報、イメージなどをばっさりカットする。
場合によっては、必要なところ「だけ」抽出とか。
プログラミング言語なので何でもあり。
全ページ、語尾の「。」を「っちゅうことやねん。」とかに置換したりもできる。やらないけど。
現在のところ、構成としては以下のような感じ。
クリックで大きくなります。
airproxyは認証ユーザ毎にリクエストの user-agentを変更することができるので、そこを細工すれば、webrick内でそれを見てユーザ毎のカスタマイズを加えることも可。
実際にはユーザと言っても私しか使わないので、「ユーザ」=「設定」ということになる。
京ぽん2にはダイヤルアップ接続設定が3つあるので、以下のようにしました。
①俺プロキシ使用。プロキシ認証で最大圧縮ユーザ(設定)で接続
②俺プロキシ使用。プロキシ認証は接続時に入力
③WILLCOM標準アクセス
普段は①で使用します。
以下の写真はデータ削減効果。
私のHPの本館トップのHTMLテキストがどのくらい削減されるかを示した物。
京ぽん2の表示です。「ページ全体サイズ」は実際の転送量を示しており、HTTPでgzipされている場合は、その圧縮時のものです。京ぽん2の画像表示設定はOFFでやってみました。
HTTPヘッダ分などは含まれないようなので、送受信しているデータは実際にはもっと多いです。
![]() |
![]() |
![]() |
無圧縮 |
WILLCOM高速化サービス |
俺サーバ圧縮 |
WILLCOM標準の高速化サービスは月額300円のオプション。 画像の画質劣化圧縮と転送のgzip化。今回の俺サーバとやってることは基本的に同じだが、HTMLそのものの削減(修正)まではしていない。その差がちょっと出てる。
私のページは広告などがないので、HTMLの削減は微々たる物だが、ページによっては大きな削減となる。
よく見るページは、狙い撃ちでカスタマイズすることで更なる削減が可能だ。
WILLCOMではPCの携帯からのダイヤルアップ向けに上の携帯用の高速化サービスとは別に、月額800円の圧縮サービスがあるが、俺サーバでこれも不要。
ウチは固定アドレスじゃないので、光モデムの電源を入れなおすと、京ぽんのプロキシ設定のためのグローバルIPアドレスが変わってしまう。
そのため、あとはダイナミックDNSの利用が必要。
速度に関しては、標準の高速化サービスと大差ない。もしかしたら遅いかもしれない。
今サーバとして使ってるマシンだと、処理中はCPUの負荷が100%べったりとなるので、ここがボトルネック。
| 固定リンク
この記事へのコメントは終了しました。
コメント
京ぽん2・・・
見事な実験体っぷりですね(汗
なんかもしか狙ってはります・・応用?
投稿: おんぼロードスタ | 2006.05.23 22:27
ロドスタさんこんにちは。
なんも狙ってなんかいないですよ。
通信費節減と、一部のサイトでの利便性向上のため、送られたhtmlやスクリプトを「俺用」に書き換えて、携帯に送ってたりしてるだけ。
携帯用の有益サイトは大抵は有償(広告スペースが多く取れないため)なのですが、PC用サイトは無料な反面、データ量多いから
このコメントも京ぽん2で打ってみました
投稿: いずみかわ | 2006.05.25 08:45