2008-02-29
polipo(dolipo)向けproxy.pac
追記 404 Not Foundでdolipo 1.0.6以降のUncachable設定に取り入れられたので、以下のproxy.pacは必要無くなったはず。(polipoなどを使っている人には有効です。でもuncachable設定をしたほうが速いかも)。あと2chブラウザやiDiskやbonjourのために「.2ch.net, idisk.mac.com, .local」を除外urlにいれると良い。
追記終わり。
dolipo, a wrapper of polipo [dh memoranda]を微改造
これをproxy.pacという名前で適当なところに保存したら「file:///Users/otsune/Documents/proxy.pac」みたいにファイルパスをAutomatic Proxy configuration URLで指定する。
function FindProxyForURL(url, host) { // variable strings to return var proxy_yes = "PROXY 127.0.0.1:8123"; var proxy_no = "DIRECT"; if (isPlainHostName(host)) { return proxy_no; } if (url.substring(0, 4) == "ftp:") { return proxy_no; } if (dnsDomainIs(host, "2ch.net")) { return proxy_no; } // if (shExpMatch(url, "http://www.tumblr.com/api/write/*")) // { return proxy_no; } // if (shExpMatch(url, "http://www.lingr.com/api/*")) // { return proxy_no; } // if (shExpMatch(url, "http://twitter.com/statuses/*")) // { return proxy_no; } // if (shExpMatch(url, "http://www.google.com/reader/atom/*")) // { return proxy_no; } // if (shExpMatch(url, "http://*.megalodon.jp/*")) // { return proxy_no; } if (localHostOrDomainIs(host, "idisk.mac.com")) { return proxy_no; } if (isInNet(host, "10.0.0.0", "255.0.0.0") || isInNet(host, "127.0.0.0", "255.0.0.0") || isInNet(host, "169.254.0.0", "255.255.0.0") || isInNet(host, "192.168.0.0", "255.255.0.0") ) { return proxy_no; } return proxy_yes; }
ファイルは http://www.otsune.com/files/proxy.pac に置いておく。バグ報告はいつも歓迎してる。
追記 CodeReposにもcommitしといた。
追記 GreaseKitをSafariに入れていると有効にならない人がいるらしい。(GreaseKitユーザーだけど有効になる人もいる)。原因は不明。参照→ SimpleBoxes | proxy.pac と dolipo の config ファイル
なぜ除外してるのか
- プライベートIPの説明は省略
- ftpはサポート外なので除外
- 2ch.netはIf-Rangeヘッダーでdatを差分取得する2ch専用ブラウザーで不具合が出る。polipoの現バージョンはIf-Rangeをサポートしていないから。おなじ理屈でbbspinkとかも指定すると良いのかも。2ch専用ブラウザを使っていないのなら省いても良い
- tumblr API書き込みだけ除外した。念のため
- LingrRadarがCPU100%になってしまうという報告があった。shExpMatchでwww.lingr.com/api/*だけ除外してもいいのかも
- P3などのTwitter専用クライアントがHTTP/1.0しかサポートしていないので、twitter APIを除外した。その手のクライアントを使っていなければ外しても良いかも
- iDiskのWebDAVとpolipoの相性が悪いみたいなので除外した。ほかのWebDAVサーバーも相性わるいかもしれない
- Google Readerで不具合が出たという報告も。shExpMatch(url, "http://www.google.com/reader/atom/*") で
- あとiTunes Radio Streamingが聴けないという不具合が出てるな。対処法はまだ追求していない →【P3】dolipoを入れると使えなくなる件【追記2】 - とかいろいろ ※追記: ~/.polipoなどのconfigに
maxSideBuffering = 0
を追加すればOk。
マニュアルに
The variable maxSideBuffering specifies how much data will be buffered in a PUT or POST request; it defaults to 1500 bytes. Setting this variable to 0 may cause some media players that abuse the HTTP protocol to work.
と書いてあった。
- ブラウザのアドレス欄に「ほげ」とか入れると自動的に検索する機能があるらしいんだけど、動作しない。リターンコードの問題?
Uncachable設定で除外する方法もあるよ
~/.polipo-uncachableに
\? /cgi-bin/ \.(php[345]?|[sp]html|cgi|pl|py|[aj]sp)$ ^http://.*megalodon\.jp/ ^xn--[0-9a-z]+
とか正規表現で書いてdolipoを再起動するとか。
- kinneko@転職先募集中の日記 - Polipo ― a caching web...
- Polipo - ローカルプロキシサーバ (dolipo / tolipo)
- SL関連たぐいで色々がんばってみる
- 天下泰平 The Whole World is peaceful. - ポリポ、ポリ...
- みうらゆうのうらはてブ『ちょびっと試される...
- 話題のProxyソフト「polipo」ちょっとだけまとめ
- polipoをWindowsのFirefoxで試してみた
- Yuxuの日記 - necoを飼うのだ。
- 天下泰平 The Whole World is peaceful. - proxy.pac for pol...
- 方向性∞ - polipoのGUIでてきた
- コードで気楽な日々を - Polipoいれてみた
- life goes easy... - polipo を Opera で使ってみる
- polipo(dolipo)向けproxy.pac - otsune's SnakeOil - subtech
- kanonjiの日記 - Macにdolipoを導入してついでにPAC...
