で、書くために確認していて気づいたのですが、ApacheのDocumentRootって、存在しなくても 他のハンドラが肩代わりできるんだねぇ、初めて知ったよ…
長所:特別何も必要ないので、簡単です。
短所:Zope側のREMOTE_ADDRがapacheのアドレスになってしまう。
http://www.documents.nothing.sh/mod_gzip/によると、Zopeでも有効と書かれてますね。
以上の設定で、とりあえず両方動作。ちょっと長期テストしてみます。
配付物のdoc/WEBSERVER.txtなんぞに書いてあるのですが、Apacheの標準的なbuildでは、認証関係のヘッダは サブプログラムに渡してくれないのですだ。で、mod_pcgi2やmod_fastcgiを素のままでは使えないので、 たとえばmod_rewriteの特殊な記述:
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^/Zope(.*) /usr/local/apache/cgi-bin/Zope.cgi/$1 ?
[e=HTTP_CGI_AUTHORIZATION:%1,t=application/x-httpd-cgi,l]
みたいなので回避する。あるいは、build時に特殊なdefineをつける。 mod_fastcgiだったら:
FastCgiExternalServer /var/zope-2.4/root -sock /var/sock/fcgi/zope -pass-header Authorization
てな具合か(この場合のDocumentRootは/var/zope-2.4/root)。
が、たとえばhttpd本体に触る権限が無かったりすることもあるはず。 また、同様の(認証ヘッダを渡してもらえない)問題はNetscape iPlanetなんぞにもある。 iPlanetではそもそもそのテのモジュールは無い。 (2002-4-1注:とか言ってたんだけど、iPlanet用のfastcgiモジュールとか出ちゃったな)
さて、こういう場合は逃げ道がないかというと、そんなことはない。 ではどうするかというと、CookieCrumblerなんぞを使ってみようというわけだ。
http://www.zope.org/Members/hathawsh/CookieCrumbler
ひとことで言うと「じゃぁauthentication headerの意味そのものをなくしちゃおうじゃないか」というわけ。
proxyでHostヘッダを書き換えないようにするパッチ。これって誰か試した??
これ実施中。apacheのproxyのキャッシュに関する記事です
| subtopics: |
| Last edited Mon, 11 Sep 2006 02:46:26 +0900 | Edit this page |