运行在Apache + WSGI和apache SSL代理上的Django

我试图重写我的Django服务器上运行的Apache + WSGI(本地networking内)的所有请求,并configuration为WSGI的维基如何,除了我为它设置一个虚拟主机。

从我想要重写请求的服务器是另一个侦听端口80的Apache服务器。如果我不尝试启用SSL连接作为所需的连接方式,我可以pipe理它以工作。 但我需要所有的请求,以使用SSLencryption的Django服务器,所以我通常使用此指令来实现(在我的公共networking服务器上):

    别名/ dirname“/ var / www / dirname”
    

         SSLVerifyClient无
         SSLOptions + FakeBasicAuth
         SSLRequireSSL
         AuthName“东西名称”
         AuthType基本
         AuthUserFile /etc/httpd/djangoserver.passwd
        要求有效的用户

         #将所有请求redirect到django.test:80 
         RewriteEngine On
         RewriteRule(。*)$ http://django.test/$1 [P]
    

如果我尝试从我的浏览器通过外部服务器加载特定的页面,此configuration将起作用。 这不是工作点击我的Django应用程序url(即使强硬的url似乎是正确的,当我把我的鼠标)。

我的公共服务器试图服务的URL使用http(而不是https),并且我在我的apacheconfiguration上指定的目录“dirname”消失,所以它说,找不到页面。 我认为这取决于Django及其WSGI处理程序。 有人问我同样的问题吗?

PS:我已经试图修改WSGI脚本。 我使用Django 1.0.3,Fedora10(内部)上的Apache 2.2,公用服务器上的Apache 2.2。

在此先感谢您的帮助。

FAB

谢谢格雷厄姆的解答:

 <Location /dirname> SSLVerifyClient none SSLOptions +FakeBasicAuth SSLRequireSSL AuthName "name Authentication" AuthType Basic AuthUserFile /etc/httpd/stuff.passwd require valid-user RequestHeader set X-Url-Scheme https </Location> ProxyPass /dirname http://django.test/dirname ProxyPassReverse /dirname http://django.test/dirname 

在django.test我加了这个:

  SetEnvIf X-Url-Scheme https HTTPS = 1 

  WSGIScriptAlias / dirname /path_to_wsgi_script/django.wsgi