Squid/ニコニコ動画のキャッシュ共有 NicoProxy2 と Squid を連携させる

提供:maruko2 Note.
移動: 案内, 検索
NicoProxy2 と Squid を連携させる

目次


NicoProxy2 は Web キャッシュサーバとして動作し、ニコニコ動画で再生した動画をファイルとしてキャッシュ(保存)することができる。

通常の Web キャッシュサーバとしても NicoProxy2 は動作するが、ニコニコ動画の動画をキャッシュするという機能以外では Squid を使用するほうが何かと都合がよい。

つまり、Web キャッシュサーバとして Squid を使用し、ニコニコ動画の動画をキャッシュする機能のみ NicoProxy2 を使うよう Squid と NicoProxy2 を連携させる方法。

NicoProxy2 をニコニコ動画の動画ファイルをキャッシュさせるためだけに使う。

Squid と NicoProxy2 を連携させる

Squid と NicoProxy2 は同じサーバ内で動作させてもよいし、別々のサーバで動作させてもよい。

NicoProxy2 は連携させるための特別な設定をする必要はない。

Squid で次のような設定をすることで、NicoProxy2 と連携して動作するようになる。

設定例

Squid と NicoProxy2 を同じサーバで動かす例。

NicoProxy2 の設定 (conf.yml)

NicoProxy2 をポート2525 で動作させる。

conf.yml
port: 2525
cache: ./cache

Squid の設定 (squid.conf)

ニコニコ動画の動画へのアクセスのみ NicoProxy2 を経由する設定。

squid.conf
acl NicovideoURL url_regex -i ^http://www\.nicovideo\.jp/api/getflv/?
acl NicovideoURL url_regex -i ^http://.*\.nicovideo\.jp/smile\?
cache_peer localhost parent 2525 0 proxy-only no-query
cache_peer_access localhost allow NicovideoURL
always_direct deny NicovideoURL
1-2行目
ニコニコ動画の動画へのアクセスを url_regex でパターンマッチし NicovideoURL という ACL名で定義する。
3行目
親キャッシュサーバとして localhost のポート 2525 を指定する。
ICP でやり取りしない隣接キャッシュサーバは親キャッシュサーバ(parent)と設定する。
proxy-only はキャッシュするデータを隣接キャッシュサーバ内に持たせるようにする設定。
no-query は ICP 問い合わせを行わないようにする設定。
4行目
NicovideoURL へのアクセスは localhost のキャッシュサーバを経由させる。
5行目
この行は無くても動作する。
always_direct deny NicovideoURL と記述すると、『NicovideoURL へのアクセスは(キャッシュサーバを経由しないで)直接接続しなくてもよい』となり、キャッシュサーバ(この場合 NicoProxy2)が停止してしまった場合に直接接続するようになる。
never_direct allow NicovideoURL と記述すると、『NicovideoURL へのアクセスはキャッシュサーバを経由しない接続を許可しない』となり、キャッシュサーバ(この場合 NicoProxy2)が停止してしまうと、ニコニコ動画が全く見れなくなる。

参考ページ

NicoProxy2 作者のページ
http://d.hatena.ne.jp/hayori/20080609/1213005114
NicoProxy2 と Squid を MacOSX 上で 組み合わせる
http://moimoitei.blogspot.com/2008/08/nicoproxy2-squid-macosx.html
[Think IT] 第4回:性能比較!WEBrick vs. Apache (2/3)
http://www.thinkit.co.jp/article/117/4/2.html
LINEで送る このエントリーをはてなブックマークに追加
個人用ツール
名前空間
変種
表示
操作
案内
ツールボックス

注目のページ

このサイトのはてなブックマーク数