lighttpdのmod_rewriteの対のApacheのmod_rewriteジャンゴおよびFastCGIと
-
12-09-2019 - |
質問
私はlighttpdの中で一つにApacheでのDjangoのFastCGIのセットアップからの移行の過程でいます。
Apacheの上で、私は、Djangoのドキュメントに記述さFCGIの設定を使用していました。
:/mysite.fcgi/$1するすべての私の非静的URLを書き換えされているコア部分RewriteRule ^/(.*)$ /mysite.fcgi/$1 [QSA,L]
、その後、FastCGIのため/mysite.fcgiに対するすべての要求を転送します:
<IfModule mod_fastcgi.c>
FastCGIExternalServer /opt/www/mysite.fcgi -host 127.0.0.1:8000
</IfModule>
セットアップは、Djangoのために働きました。例えば、私はhttp://www.mydomain.com/help/
に行って、私はテンプレートに{{ request.get_full_path }}
を印刷し、場合、結果は/help/
ました。人生は良かったと私は幸せでした。しかし、私は、Apacheが私を与えることができるより多くの同時接続をサポートするWebサーバーに移動するために私を強制されているいくつかの問題に遭遇します。
早送りlighttpdをします。すべての構成された、よくされています。私はmod_rewriteをして私のURLを書き換えています:
url.rewriteワンス(= "^(/メディア/。の)$" => "$ 1"、 "^ / favicon.icoを$" => "/med/img/favicon/favicon.ico"、 "^(/。の)$" => "/mysite.fcgi$1"、 )
とFastCGIの取り扱い/mysite.fcgiがあります:
fastcgi.server = (
"/mysite.fcgi" => (
"main" => (
"host" => "127.0.0.1",
"port" => 8000,
"check-local" => "disable",
)
),
)
物事は、一般的に働き、私のDjangoのサイトが正常に動作します。私は、テンプレートにhttp://www.mydomain.com/help/
と印刷{{ request.get_full_path }}
に行くときには、結果が/mysite.fcgi/help/
です。これは、いくつかの問題が発生します。
Djangoのサイトがうまく機能として、これは一般的に問題が発生することはありませんが、私はSSLを使用する場合、それは問題を起こすん。 // WWW:のhttpから - 具体的に、私は "sjzabel@gmail.comスティーブンZabel" からsslmiddlewareを使用しています。 djangosnippets.org/snippets/240/する。このソフトウェアは、Apacheの下したよりlighttpdの下に別の値を返しますrequest.get_full_path、に依存しています。 request.pathも同じ。
誰もがこの問題から抜け出す方法を提案することはできますか?理想的には、私は、Apacheのmod_rewriteの下と同じ動作を持っているのlighttpdのmod_rewriteをしたいと思います。可能でない場合は、私が使用していますsslmiddlewareパッケージと互換性があるでしょうlighttpdのFastCGIのDjangoのセットアップをしたいと思います。代替的に、私はlighttpdのURLを書き換えるからmod_rewriteは方法と互換性を持つようにsslmiddlewareパッケージを変えることができます。
この答えは素晴らしい30歳の誕生日の存在になるだろう!
解決
あなたはに "" にFORCE_SCRIPT_NAMEを定義しようとしましたsettings.py とのFastCGIサーバを再起動する?
FORCE_SCRIPT_NAME=""
他のヒント
http://redmine.lighttpd.net/issues/show/729あなたはむしろlighttpdの中でそれを修正したい場合。
要するに=> FCGIの設定に "有効"、1.4.23にアップグレードすると、 "固定ルート-SCRIPTNAME" を追加します。