문제

나는 Apache의 Django FastCGI 설정에서 LightTPD의 하나로 마이그레이션하는 과정에 있습니다.

Apache에서는 Django 문서에 설명 된 FCGI 구성을 사용하고있었습니다. 핵심 부분은 모든 비 정적 URL을 /mysite.fcgi/$1로 다시 작성하는 것입니다.

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가 나에게 줄 수있는 것보다 더 동시 연결을 지원하는 웹 서버로 이동하도록하는 몇 가지 문제를 해결했습니다.

LightTPD로 빠르게 전달하십시오. 모두가 구성되어 있습니다. Mod_rewrite로 URL을 다시 작성하고 있습니다.

url.rewrite-once = ( "^(/media/.) $ "=>"$ 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을 사용할 때 문제가 발생합니다. 구체적으로, 나는 "Stephen Zabel -sjzabel@gmail.com"에서 sslmiddleware를 사용합니다. http://www.djangosnippets.org/snippets/240/ . 이 소프트웨어는 request.get_full_path에 의존하며, 이는 Apache의 경우와 다른 값을 반환합니다. request.path에 대해서도 동일합니다.

누구 든지이 문제에서 벗어날 수있는 방법을 제안 할 수 있습니까? 이상적으로는 Lighttpd mod_rewrite가 Apache 아래에서 mod_rewrite와 동일한 동작을 갖기를 원합니다. 불가능하다면 사용중인 SSLMIDDLEWARE 패키지와 호환되는 LightTPD FastCGI Django 설정을 원합니다. 또는 LightTPD의 mod_rewrite가 URL을 다시 작성하는 방식과 호환되도록 sslmiddleware 패키지를 변경할 수 있습니다.

이 대답은 환상적인 30 번째 생일 선물을 만들 것입니다!

도움이 되었습니까?

해결책

force_script_name을 ""로 정의하려고 했습니까? settings.py FastCGI 서버를 다시 시작 하시겠습니까?

FORCE_SCRIPT_NAME=""

다른 팁

보다 http://redmine.lighttpd.net/issues/show/729 오히려 Lighttpd에서 고치려면.

요컨대 1.4.23으로 업그레이드하고 FCGI 구성에 "Fix-Root-ScriptName"=> "활성화"를 추가하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top