简体   繁体   English

Apache上基于Django的框架虚拟主机设置https

[英]Django Based framework virtual host setup https on Apache

I am using a django based framework and have successfully figured Apache settings for http mode. 我使用的是基于django的框架,并且已成功找到HTTP模式的Apache设置。 Basically I have done the setting correctly on <VirtualHost *:80> ... </VirtualHost> and when I do, http://mysite.domain.com I get routed correctly to my site and the site pages and the skins get render correctly. 基本上,我已经正确完成了<VirtualHost *:80> ... </VirtualHost> ,当我这样做时, http: //mysite.domain.com正确地路由到了我的站点,站点页面和皮肤正确渲染。

I have setup https://mysite.domain.com to work with shibboleth, shibboleth is working and when use the https I get routed to login credential page via shibboleth server, and after successful login I get redirect to https://mysite.domain.com but site doesn't get rendered correctly and skins don't show up as same as http://mysite.domain.com . 我已设置https://mysite.domain.com与shibboleth一起使用,shibboleth正常工作,当使用https时,我通过shibboleth服务器被路由到登录凭证页面,成功登录后,我将重定向到https:// mysite。 domain.com,但网站无法正确呈现,外观也没有与http://mysite.domain.com相同。

Here is my Apache settings, I am trying to understand what I am doing wrong here 这是我的Apache设置,我试图了解我在这里做错了什么

<VirtualHost *:443>
     ServerAdmin myname@mydomain.com
     DocumentRoot /code/vEnviornment/mysite
     ServerName mydomain.com
     #<LocationMatch "^(?!/admin)">
     #<LocationMatch "^(?!/m)">
     #    RewriteEngine on
     #    RewriteRule django.wsgi(.*)$ https://mydomain.com:443$1 [L,R=301]
     #</LocationMatch>
     SSLEngine on
     #your SSL keys
     #I have removed this wasn't comfortable putting SSL key info
     #Alias /admin/media/ /usr/local/lib/python2.6/site-packages/django/contrib/admin/media/
     Alias /admin/media/ /usr/local/lib/python2.7/dist-packages/django/contrib/admin/media/
     WSGIScriptAlias /m/ /code/vEnviornment/mysite/django.wsgi
     <Directory "/">
     AuthType shibboleth
     ShibRequestSetting requireSession 1
     Require valid-user
     </Directory>
     Alias /Shibboleth.sso /tmp
     #    CustomLog /var/log/httpd/mysite/access_log common
     #    ErrorLog /var/log/httpd/mysite/error_log
    CustomLog /var/log/apache2/mysite/access_log common
    ErrorLog /var/log/apache2/mysite/error_log
</VirtualHost>

And here is how I have hetup http: 这就是我如何让http:

<VirtualHost *:80>
     ServerAdmin myname@mydomain.com
     DocumentRoot /code/vEnviornment/mysite
     ServerName mysite.mydomain.com

     #aliases to serve static media directly
     #will probably need adjustment
     Alias /m/ /code/vEnviornment/mysite/static/
     Alias /upfiles/ /code/vEnviornment/mysite/myframework/upfiles/
     <DirectoryMatch "/code/vEnviornment/mysite/myframework/skins/([^/]+)/media">
        Order deny,allow
        Allow from all
     </DirectoryMatch>
     <Directory "/code/vEnviornment/mysite/myframework/upfiles">
        Order deny,allow
        Allow from all
     </Directory>
     #must be a distinct name within your apache configuration
     WSGIDaemonProcess mysite2
     WSGIProcessGroup mysite2
     WSGIScriptAlias / /code/vEnviornment/mysite/django.wsgi
     #make all admin stuff except media go through secure connection
     <LocationMatch "/admin(?!/media)">
     RewriteEngine on
         RewriteRule /admin(.*)$ https://128.101.35.71/admin$1 [L,R=301]
     </LocationMatch>
    # CustomLog /var/log/httpd/mysite/access_log common
    # ErrorLog /var/log/httpd/mysite/error_log
    CustomLog /var/log/apache2/mysite/access_log common
    ErrorLog /var/log/apache2/mysite/error_log
    LogLevel debug
</VirtualHost>

What am I doing wrong here to render the site incorrectly via https? 我在这里通过https错误地呈现网站的地方在做什么

Alias /m/ /code/vEnviornment/mysite/static/
 Alias /upfiles/ /code/vEnviornment/mysite/myframework/upfiles/

These two lines are missing in https virual host https虚拟主机中缺少这两行

and

your WSGIScriptAlias should point to / not /m/ 您的WSGIScriptAlias应该指向/而不是/ m /

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM