2011-02-04 78 views
39

我正在尝试在Django站点上设置SSL我维护并在使用SSL设置我的VirtualHost时遇到了一些问题。我跟着指示here但每次我试图重新启动Apache的时候,它告诉我,因为多个virtualhosts usign相同WSGI配置它不能重新启动:使用WSGI的Apache2上的SSL

/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> 

回答

45

删除行:从虚拟主机在该虚拟主机的mydomain

WSGIDaemonProcess mydomain user=myuser group=mygroup processes=1 threads=1 

为443. WSGIProcessGroup能够跨越到WSGIDaemonProcess定义达成80.

换句话说,当错误消息试图建议时,WSGIDaemonProcess的名称,即'mydomain',对于整个Apache服务器必须是唯一的。

如所示的跨虚拟主机引用意味着站点的HTTP和HTTPS变体仍将在相同的守护进程组/解释器中运行。

11

,希望这将有助于其他发布...

我遇到了这个错误,因为虚拟主机文件已在启用站点的目录符号链接了两次。

+0

傻了,我粘贴了相同的conf文件,用于启用网站的文件夹中的备份目的。谢谢! – 2017-10-17 09:19:46