首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django SSL apache配置

django SSL apache配置
EN

Stack Overflow用户
提问于 2010-11-07 06:49:27
回答 1查看 3.3K关注 0票数 3

我有一个django应用程序,我想应用SSL的管理页面。因为管理页面是唯一需要SSL的页面,所以我想使用apache配置文件而不是SSLMiddleware来实现这一点。我的(部分) apache配置文件如下所示:

代码语言:javascript
复制
<VirtualHost *:80>
    .
    .
    DocumentRoot /home/www/sites_django/wmssite
    .
    <Directory "/home/www/sites_django/wmssite">
        .
    </Directory>

    <Location "/admin">
        RewriteEngine On
        RewriteRule ^/(.*) https://www.whitemoorstudio.pvm/admin [L,R=301]
    </Location>
</VirtualHost>

<VirtualHost *:443>
    SSLEngine on
    SSLCertificateFile "/usr/local/etc/apache22/www_whitemoorstudio_pvm.crt"
    SSLCertificateKeyFile "/usr/local/etc/apache22/www_whitemoorstudio_pvm.key"
    .
    .
</VirtualHost>

TLD .pvm是一个本地TLD,我只是用它在我的内部网络上进行测试。

我已经设置了一个自我签名的证书,它工作得很好……说大也大吧。奇怪的是,由于某些原因,当重写到https时,它无法在/media目录中找到媒体文件,没有图像,没有css,没有js。apache错误日志告诉我它正在目录/usr/local/www/apache22/data/media中查找:

代码语言:javascript
复制
[Sat Nov 06 20:45:18 2010] [error] [client 192.168.1.134] File does not exist: /usr/local/www/apache22/data/media, referer: https://www.whitemoorstudio.pvm/admin/

当我不重写https时,管理媒体目录/usr/local/www/apache22/media。此目录介质是一个逻辑链接:

代码语言:javascript
复制
media -> /usr/local/lib/python2.5/site-packages/django/contrib/admin/media

我不知道为什么在没有SSL的情况下它会查找:

代码语言:javascript
复制
/usr/local/www/apache22/media

在以下位置使用SSL:

代码语言:javascript
复制
/usr/local/www/apache22/data/media

最后一个目录不存在!

有谁知道吗?

EN

回答 1

Stack Overflow用户

发布于 2010-11-07 07:37:11

问题已经解决了。在VirtualHost *:443容器中添加内容时

我忘了指定DocumentRoot指令,所以它是在主httpd.conf中指定的。

它在VirtualHost *:80容器中运行得很好,因为在那一节中我指定了DocumentRoot。

在httpd.conf中,它被指定为: DocumentRoot "/usr/local/www/apache22/data“

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4115590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档