【发布时间】:2012-11-19 14:36:53
【问题描述】:
我的 django 应用程序(我叫它partlysecureapp)有一个对所有人可见的索引页面。所有其他页面(可从索引页面上的链接访问)需要用户登录。我想使用该应用程序在 apache2 中使用 SSL。
我已经有一个应用程序(比如mysecureapp)部署在带有 SSL 的 apache 上,其中所有页面都需要用户登录。我为此设置了如下配置。
我的 apache2 位于 /etc/apache2,其目录结构如下。
/etc/apache2/
|--conf.d---*charset,security,localized-error-pages*
|---mods-available---...
|---mods-enabled---...
|---sites-available---default,default-ssl,ssl
|---sites-enabled---shortcut to ssl
|---apach2.conf
|---httpd.conf
|---ports.conf
|---magic
|---envvars
对于secureapp,我已经在文件sites-available/ssl中设置了这个
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /home/dev/python/django/mysecureapp
SSLEngine on
SSLOptions +StrictRequire
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key
...
WSGIScriptAlias /mysecureapp /home/dev/python/django/mysecureapp/mysecureapp.wsgi
Alias /site_media/ /home/dev/python/django/mysecureapp/media/
</VirtualHost>
这很好用..
部署我的partlysecureapp,
http://127.0.0.1:8080/partlysecureapp/ 需要显示可供所有人访问的索引页面。
但是
../partlysecureapp/link1/
../partlysecureapp/link2/
../partlysecureapp/link3/
需要登录并且应该通过 ssl 提供服务。
我想,我需要为我的partlysecureapp 添加另一个WSGIScriptAlias。我需要为partlysecureapp 添加另一个DocumentRoot 吗?如何告诉apache通过ssl端口从端口8080和其他人提供索引页面?
截至目前,/etc/apache2/httpd.conf 为空白。只有sites-available/ssl 文件有VirtualHost 元素。
【问题讨论】: