SSL на Apache2 с WSGI
Я пытаюсь настроить SSL на сайте Django, который я поддерживаю, и имею немного проблем с настройкой своего VirtualHost с помощью SSL. Я выполнил инструкции здесь, но каждый раз, когда я пытаюсь перезапустить apache, он говорит мне, что он не может перезагружаться из-за того, что несколько виртуальных хостов используют тот же конфигуратор wsgi:
/etc/init.d/apache2 reload
Syntax error on line 33 of /etc/apache2/sites-enabled/www.mydomain.com:
Name duplicates previous WSGI daemon definition.
...fail!
Я понимаю, что происходит, просто не как это исправить. Любые предложения приветствуются, спасибо! Вот как выглядит мой файл VirutalHosts:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName mydomain.com
ServerAlias www.mydomain.com
DocumentRoot /sites/mydomain
# WSGI Settings
WSGIScriptAlias / /sites/mydomain/wsgi_handler.py
WSGIDaemonProcess mydomain user=myuser group=mygroup processes=1 threads=1
WSGIProcessGroup mydomain
# Static Directories
Alias /static /sites/mydomain/static/
<Location "/static">
SetHandler None
</Location>
Alias /img /sites/mydomain/img/
<Location "/img">
SetHandler None
</Location>
</VirtualHost>
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName mydomain.com
ServerAlias www.mydomain.com
DocumentRoot /sites/mydomain
# WSGI Settings
WSGIScriptAlias / /sites/mydomain/wsgi_handler.py
WSGIDaemonProcess mydomain user=myuser group=mygroup processes=1 threads=1
WSGIProcessGroup mydomain
# Static Directories
Alias /static /sites/mydomain/static/
<Location "/static">
SetHandler None
</Location>
Alias /img /sites/mydomain/img/
<Location "/img">
SetHandler None
</Location>
# SSL Stuff
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/crt/vhost1.crt
SSLCertificateKeyFile /etc/apache2/ssl/key/vhost1.key
<Location />
SSLRequireSSL On
SSLVerifyClient optional
SSLVerifyDepth 1
SSLOptions +StdEnvVars +StrictRequire
</Location>
</VirtualHost>
Ответы
Ответ 1
Удалите строку:
WSGIDaemonProcess mydomain user=myuser group=mygroup processes=1 threads=1
из VirtualHost для 443. WSGIProcessGroup для mydomain в этом VirtualHost может перейти к определению WSGIDaemonProcess в 80.
Другими словами, как пытается сообщить сообщение об ошибке, имя WSGIDaemonProcess, то есть, "mydomain", должно быть уникальным для всего сервера Apache.
Ссылаясь на VirtualHosts, как указано, как HTTP, так и HTTPS-варианты сайта будут по-прежнему выполняться в той же группе процессов/интерпретатора демона.
Ответ 2
Публикация в надежде, что это поможет другому...
Я столкнулся с этой ошибкой, потому что файл виртуального хоста был дважды привязан к ссылкам в каталоге с поддержкой сайтов.