nDiki : proxy

2000年9月8日 (金)

Linbot の文字化け、とりあえず delegate で対応

2000年8月25日メモした WWW リンクチェッカ Linbot。 便利だが、日本語が化ける。 ということで、とりあえず delegate をかませて fetch されてくるものを日本語 EUC に統一してしまう事に。

 $/usr/sbin/delegated -P8084 FTOCL=-euc SERVER=http PROXY=localhost:8080:*

として delegated を起動。 Linbot の proxy で 8084ポート指定して、WWWOFFLE と Linbot の間に delegated をかます。

これでとりあえず Linbot の出力結果で日本語タイトルが化けなくなった。 delegate 使うの初めてだけど、こんな感じでいいのかな?

ちょっと気になるのは、delegate でひっかかるページ(とても時間がかかるページ)があるということ。 普通の Web ブラウザから、上記起動の delegate 経由でアクセスしてもひっかかる。 WWWOFFLEオフラインにしているからスパッっと返ってくるはずなんだけど。 delegate が何かのタイマウト待ちでもしているんだろうか。

追記

やはり遅かったのは名前解決のタイムアウト待ちで、delegated のオプションに RESOLV="" としておけば、とりあえず名前をひかなくなる。(2000年9月11日追記)

スポンサード リンク
[ 9月8日全て ]

2000年10月1日 (日)

Web広告に興味を持つ

私はあまりWeb 広告のある Web ページは好きではない。 理由は、

  • 不必要な帯域を使う。
  • ページ閲覧が遅くなる。
  • 広告画像の分だけ表示領域が狭くなり、コンテンツを見るのにスクロールが必要になりがち。
  • 本来見たいコンテンツが見にくくなる。
  • キャッシュの容量を食う
  • ほとんどの広告がうるさい(アニメーション)
  • バナーのデザインが派手でページにマッチしない

等。まぁ嫌いだという人は、同じような理由が多いのではないだろうか。

広告があるけれどコンテンツが見たくて何度も定期的にアクセスするページ」は、proxy広告をロードしないようにしている(WWWOFFLE の DontGet 機能)。 まぁ、そういうページはタイトル画像やアクセスカウンタも DontGet してしまうのだが。

ということで、もちろん拙作のページにも広告は掲載してこなかった。 といってもいままで大学のサーバで公開していたので、それ以前の問題としてもともとマズいし。

また、各 Web サイトアイコンを使ったリンクというのも、重いのであまり好きじゃない。 リンク先のイメージが沸くかというと、そうでもないし。 アニメ絵系のは、それ系かなとは思うけど。

で、なぜ今回興味を持ったかというと「今ホスティングサービスを受けている会社(ソリッドネットワークス株式会社※)の現状はどうかな」、と全文検索していたらその会社の広告を出している人を発見。

hosted by ……. なんてページのどっかに書いてもいいかなと前から思っていたんだけど、まぁその部分を広告経由のリンクにしてもいいかなと。

もちろん、広告収入でサーバ代の一部でも pay できたら嬉しいというのもある。

ということでその広告を斡旋しているらしい ValueCommerce に登録してみた。 3営業日以内に審査の結果連絡とのこと。

ついでにメジャーどころの、valueclick の方も登録してみた。 こちらは10営業日以内の審査とのこと。

今後どうなるか楽しみ。 審査自体通らなかったりして。

もし、サイトの品を落とさないようにできそうな、広告配信サービスがあったら実験的に掲載してみようかな。

追記

※現在は社名変更し株式会社NEXON JAPAN。 ソリッドネットワークスホスティングサービスへのリンクを追加。(2001年8月5日)。

[ 10月1日全て ]

2001年10月2日 (火)

25:45 Apache Proxy で アンテナの ?%MM%%DD%%HH%%TT% 除去

最近、アンテナを活用するようになった。 が、アンテナの多くは URL の末尾に更新時間情報(?10021446 等)をつけるため、本来同じ URL のページが違う URL で、どんどんキャッシュ proxy (WWWOFFLE)にたまってしまう。

そこでブラウザと WWWOFFLE の間に aAache proxy を挟んで ?10021446 等を取り除いてしまうことにした。 RewriteRule の substitution の最後に ? をつけないと query string が除去できない事に気が付かなくて随分はまった。

とりあえず、うまくいったみたいなのでコンピュータ日誌の10月2日のところに、設定をまとめておく。

Apache Proxy で アンテナの ?%MM%%DD%%HH%%TT% 除去

アンテナページの多くはリンクURLに更新日時を付加する。 例えば

 http://www.naney.org/personal/diary/hns/

が、10月02日 14:46 に最終更新されているとう情報を取得すると

 http://www.naney.org/personal/diary/hns/?10021446

という、URL を持つリンクをアンテナページに生成する。 ページが更新されるとURLも変化するので、(Mozilla, Internet Explorer 等の)以前にアクセスした事のあるリンクの色を変えるブラウザでは、更新されたことを確認しやすい。

が、これはキャッシュ proxy には仇になる。 更新されるたびにURLが変化するということは、そのURLごとにキャッシュが作られるということだ。 私の愛用の WWWOFFLE もご多分にもれずそうである。 私は3ヶ月間キャッシュを保持するようにしているから、一日に3度更新されるページをアンテナのリンク経由で見ると、約90のコピーがキャッシュされる事になる。 そして、最新以外のキャッシュは(通常)2度と利用されることもない。 もはや、その URL ではアクセスされないから。

これはもったいない。 ようは、アンテナ経由でのアクセスの ? 以下を削除してキャッシュすればいいのだが、WWWOFFLE にはあいにくそのような機能はない。 そこで、URL を書きかえる proxy をブラウザと WWWOFFLE の間にカマせようということになる。

 Mozilla -> rewrite proxy -> WWWOFFLE -> target site

ここでは、Apache を rewrite proxy にすることにしてみた。 Apachemod_proxyproxy になるし、mod_rewriteURL を柔軟に変更できる。 もともと、自分の Web サイトのチェック用にローカルマシンで Apache も常時起動しているので設定を変更するだけだ。

とりあえず、大抵のアンテナは ?と8桁の数字(「なつみかん」でいうところの?%MM%%DD%%HH%%TT%)を付加するので、これをもぎとればよい。 以下、httpd.conf の修正。

 LoadModule proxy_module /usr/lib/apache/1.3/libproxy.so
 LoadModule rewrite_module /usr/lib/apache/1.3/mod_rewrite.so

とモジュールをそれぞれ有効にする。rewrite_module より proxy_module を先に Load するようにする(デフォルトでは逆順なので注意)。

そして、httpd.conf の最後に

 ProxyRequests On
 ProxyRemote * http://127.0.0.1:8080/
 NoCache *
 <IfModule mod_rewrite.c>
 RewriteEngine on
 #RewriteLog /tmp/rewrite_log
 #RewriteLogLevel 9
 RewriteRule ^proxy:(.*)\?[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$ $1? [L]
 </IfModule>

を追加。ProxyRemote で、WWWOFFLEproxy を指定。 RewriteLog, RewriteLogLevel はうまく書き替らない時に有効にしてログを確認するのに使う。 最後の RewriteRule で実際に書き替えを行う。 ポイントは $1? と、置換後の文字列指定で最後に ? をつけること。 これをつけないと query-string が削除されない(これに気が付くのに随分かかった)。

後はブラウザ側の http プロキシ先を 127.0.0.1:80 にすれば OK。

無条件に ?と8桁数字が末尾にくれば、取り除いてしまうので荒っぽい RewriteRule だ。 だが上記のような query string を使っているページは(多分)そうないから、とりあえず、これで良しとしよう。 困ったら直せばいい。

追加リンク

[ 10月2日全て ]

2002年4月17日 (水)

Apacheミラー proxy

「会社のサイトにあるデモをノート PC に載せて、オフラインで使いたい」という事で、Windows XPノート PCApacheインストール

Internet Explorer からは http://会社のサーバ名/ でアクセスできるようにしなければならないので*1 Apacheproxy を使う事にする。 mod_proxymod_rewrite を(この順番で)有効にして

 ProxyRequests On
 NoCache *
 <IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteRule ^proxy:http://会社のサーバ名/(.*)$ http://127.0.0.1/会社のサーバ名/$1 [P]
 </IfModule>

としておく。 '<DocumentRoot>/会社のサーバ名' ディレクトリ以下に公開サーバの内容をコピー。 これで、Internet Explorerproxy を 127.0.0.1:80 にすれば、会社のサーバへの URL はローカル Apacheミラーコンテンツを返してくれる。

ただ、オフライン時に Internet Explorer が直接 DNS をひきにいこうとして proxy に行く前に名前解決失敗してエラーにしてしまったり、途中未接続の旨のダイアログが出たりすると一筋縄では行かなかったり。

自分の開発Windows 2000 BOX だと不具合が多かったけど頼まれた XP のノート PC は、あまりいじってないせいか割に素直に動いた。

*1そうしないとデモが動かない

[ 4月17日全て ]

2002年9月17日 (火)

去年の今ごろ

2001年9月17日より。

[ 9月17日全て ]

2004年2月9日 (月)

AIM 5190 -> 80

ルータの設定の関係で社内からAIMできなくなっていたので proxy かなにかを通そうかと思ったら、何のことはない接続先をポート80にするだけでOKだった。

サーバ側で80でも待ち受けているってことか。 知らなかった。

[ 2月9日全て ]

2004年12月8日 (水)

mixi の足あとの未読/既読表示

mixi の足あとリストは、未読/既読の判別ができない。 なので踏み返す際に、以前どこまで見たかわからなくなって困る。

ということで Privoxyproxy

  • 踏まれた時間をダミーの date query パラメータとして渡してURLが変わるように、HTMLを書き換える。
  • 未訪問と訪問済みのA要素が同じ色になるように設定されているので、a:visited の設定をHTMLに追加する。

といったフィルタリングをするようにする。

Privoxy のフィルタに

 FILTER: mixi-log add date query to mixi log
 s|((\d\d\d\d).+(\d\d).+(\d\d).+(\d\d):(\d\d).+href="show_friend\.pl\?id=\d+?)|$1&date=$2$3$4$5$6|gU

 FILTER: mixi-log-color change visited color
 s|<body|<style type="text/css">\n<!--\na:visited { color:black }\n-->\n</style>\n<body|

を加える。で http://mixi.jp/show_log.pl リクエストに対して mixi-log と mixi-log-color フィルタが有効になるようにアクションを設定。

これで踏み返したものは黒く表示されるようになる。

[ Naney と mixi ]

[ 12月8日全て ]

2005年8月2日 (火)

例によってPHS接続用に WWWOFFLE を設定

夏休みでしばらく数日(常時接続ではない) PHS 接続生活になるので、例によって WWWOFFLEインストール。しばらくは WWWOFFLE + Privoxy の2重 proxy 生活。

今回はDNS キャッシュサーバとして pdnsd も入れておく。

あわせて resolvconf パッケージもインストールして、ifup / ifdown の実行などで問い合わせにいく DNS サーバが変わっても pdnsd が追従するように設定(というか pdnsd のデフォルトの pdnsd.conf がそのようになっている)。

これで /etc/resolv.conf はいつも

 nameserver 127.0.0.1

にしておけるので 実際に問い合わせにいく DNS サーバが変わっても WWWOFFLE再起動が必要なくなる。


[ Debian ]

[ 8月2日全て ]

2005年10月15日 (土)

POEHTTP プロキシサーバ

Privoxy などのプロキシサーバを使うと閲覧するWebページの書き換えをすることができるのだが、凝ったことをするとなると無理がある。

以前から興味のあった POEHTTP プロキシサーバを作ってみることにしよう。 といってもまずは、サンプルを動かしてみるところから。

POE Cookbook の web proxy サンプルを動かしてみる。 なるほど短く書けていいな。

これに Web ページを書き換えるコードを挿入してあげれば、簡単に希望するプロキシサーバの出来上がり。 Greasemonkey も悪くないけれど、ローカルのデータとかを利用してページを書き換えたい時はこっちの方が楽であろう。 それに Perl だし。

[ 10月15日全て ]

2006年6月3日 (土)

FoxyProxy と autossh で社内 Web ページを閲覧

メンテナンス等のため社内 Web サイトを社外から閲覧する必要がある場合 SSHport forwarding を使ってアクセスしていたのだが、その都度 Firefoxproxy を変更したりするのが面倒だった。

そんな折 FoxyProxy という Firefox 拡張機能があることを知った。 これは登録された URL パターン毎に、自動的に proxy を切り替えてくれるという優れもの。 これは便利。

autosshport forwarding (SOCKS サーバ)を開いておくようにして、社内のホスト名/IP アドレスURLの時はそこを経由するようにしておくと、いつでも Firefox から閲覧できるようになる。

 autossh -N -f -D8090 <中継するホスト名>
[ 6月3日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.052928s / load averages: 0.58, 0.69, 0.72
nDiki by WATANABE Yoshimasa (Naney)
Powered by DiKicker