Different settings for secure & non-secure versions of Django site using WSGI
- by Jordan Reiter
I have a Django website where some of the URLs need to be served over HTTPS and some over a normal connection.
It's running on Apache and using WSGI. Here's the config:
<VirtualHost example.org:80>
ServerName example.org
DocumentRoot /var/www/html/mysite
WSGIDaemonProcess mysite
WSGIProcessGroup mysite
WSGIScriptAlias / /path/to/mysite/conferencemanager.wsgi
</VirtualHost>
<VirtualHost *:443>
ServerName example.org
DocumentRoot /var/www/html/mysite
WSGIProcessGroup mysite
SSLEngine on
SSLCertificateFile /etc/httpd/certs/aace.org.crt
SSLCertificateKeyFile /etc/httpd/certs/aace.org.key
SSLCertificateChainFile /etc/httpd/certs/gd_bundle.crt
WSGIScriptAlias / /path/to/mysite/conferencemanager_secure.wsgi
</VirtualHost>
When I restart the server, the first site that gets called -- https or http -- appears to select which WSGI script alias gets used.
I just need a few settings to be different for the secure server, which is why I'm using a different WSGI script. Alternatively, it there's a way to change settings in the settings.py file based on whether the connection is secure or not, that would also work.
Thanks