読者です 読者をやめる 読者になる 読者になる

リバースプロキシプロダクトの比較資料を読んで気になったとこ

IIJ Technical WEEK 2012 - リバースプロキシプロダクトの比較 - techweek2012_03c.pdf

を読んでみました。
Squidとかそもそも載ってない。へー。
気になったところを軽くメモしときます。

VarnishはSSLに対応していない

23枚目のスライドで、VarnishはSSLが×になっている。
あれっ? と思って調べてみると、VarnishはSSLに対応する予定はないらしいです。

Why no SSL ? — Varnish version 3.0.4-rc1 documentation

First, I have yet to see a SSL library where the source code is not a nightmare.

As I am writing this, the varnish source-code tree contains 82.595 lines of .c and .h files, including JEmalloc (12.236 lines) and Zlib (12.344 lines).

OpenSSL, as imported into FreeBSD, is 340.722 lines of code, nine times larger than the Varnish source code, 27 times larger than each of Zlib or JEmalloc.

OpenSSLのコードは悪夢だとしか思えない、と。

We would terminate SSL sessions, and we would burn CPU cycles doing that. You can kiss the highly optimized delivery path in Varnish goodby for SSL, we cannot simply tell the kernel to put the bytes on the socket, rather, we have to corkscrew the data through the SSL library and then write it to the socket.

Will that be significantly different, performance wise, from running a SSL proxy in separate process ?

No, it will not, because the way varnish would have to do it would be to ... start a separate process to do the SSL handling.

There is no other way we can guarantee that secret krypto-bits do not leak anywhere they should not, than by fencing in the code that deals with them in a child process, so the bulk of varnish never gets anywhere near the certificates, not even during a core-dump.

この部分、なんかちゃんと理解できないんですが、
けっきょくSSLのセッションを個別に立ち上げるしかなくて、パフォーマンス的にあんま意味なくない?的なことを言っているようです。
軽くぐぐった感じだとNginxと組み合わせて使うパターンが多そう。

Apache Traffic Serverだけが対応しているInternet Cache Protcolって?

Internet Cache Protocol - Wikipedia, the free encyclopedia
Hierarchical Caching

キャッシュに先にさらにキャッシュがある、みたいな時に使うプロトコルらしいです。
2つめのリンク先の図がわかりやすい。