トップ(最新)

nDiki : mod_proxy

Related term

2001年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日全て ]

Related web page

Techknow Movable Type: Apache 2.0 + mod_proxy によるリバース・プロキシの構築
前回のエントリ &apos;リバース・プロキシ導入の準備知識&apos; で紹介したリバース・プロキシを実際に導入する方法を紹介します。 リバース・プロキシを構築する方法はいくつかありますが、本エントリではその代表的な方...
http://www.movabletype.jp/developers/naoya/archives/2004/10/apache_20_mod_p.html

■よく検索されるキーワード

torrent(173) expressions(80) 竹内まりや(58) x31(25) ドラマ(23) linux(23) 手帳(21) 壁紙(21) perl(21) windows(20) 動画(19) wiki(17) porter(17) debian(16) 使い方(16) 画像(15) thinkpad(15) 作り方(15) gmail(14) usb(14) 秋葉原(13) ヨドバシ(13) ほぼ日手帳(13) 提案書(12) 活用(12) 竹内(12) 古川小百合(12) 修理(12) ノート(11) 無印(11) ヨドバシカメラ(11) nikon(11) 書き方(10) ダイソー(10) 万年筆(10) 生年月日(10) 大井町(10) ミニ6穴(9) ほぼ日(9) tc-1(9) 冷蔵庫(9) 設定(9) ニコン(9) java(9) mp3(8) 故障(8) 方眼(8) xp(8) 日誌(8) 感想(8) カメラ(8) allinanchor:*.torrent(8) バッグ(8) firefox(7) インストール(7) キーボード(7) mixi(7) 無料(7) リフィル(7) 小林麻耶(7) nikkor(7) ジョイントラック(7) madwifi(7) 原田夏希(7) skype(6) 変更(6) 三条まゆみ(6) ペンケース(6) web(6) emacs(6) home(6) ポーター(6) 2009(6) itunes(6) a6(6) 無印良品(6) デジカメ(6) finepix(6) 無線lan(6) 評判(6)

この日記のはてなブックマーク数 Add to Google RSS

Process Time: 4.288451s / load averages: 1.35, 1.57, 1.46
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)