将 VirtualHost 配置为 运行 第二个网站,<VirtualHost *:8080> 问题,`Listen` 错误

Configuring VirtualHost to run a second website, issue with <VirtualHost *:8080>, error with `Listen`

我正在尝试弄清楚如何从我的 VM 托管第二个 Django 网站,我想知道是否有人可以看到我在哪里犯了任何明显的错误。

目前,设置为 <VirtualHost *:80> 的站点均可使用。我从this answer了解到,我应该将第二个网站指定为<VirtualHost *:8080>。但是,当我尝试使用 Listen 时,当我尝试重新加载 apache

时出现以下错误

Job for apache2.service failed. See 'systemctl status apache2.service' and 'journalctl -xn' for details.

我正在使用 Debian 8.5、Apache 2.4.10 和 mod-wsgi 4.3.0-1。

Listen 80
<VirtualHost *:80>

ServerName myserver.scss.tcd.ie/bias_experiment/

Alias /bias_experiment/static/ /var/www/bias_experiment/static/
<Directory /var/www/bias_experiment/static>
Order deny,allow
Allow from all
</Directory>

WSGIScriptAlias /bias_experiment /var/www/bias_experiment/src/bias_experiment/index.wsgi
<Directory /var/www/bias_experiment/src/bias_experiment>
<Files index.wsgi>
Order deny,allow
Allow from all
</Files>
</Directory>

</VirtualHost>


Listen 8080
<VirtualHost *:8080>

ServerName myserver.scss.tcd.ie/bias_experiment_two/

Alias /bias_experiment_two/static/ /var/www/bias_experiment_two/static/
<Directory /var/www/bias_experiment_two/static>
Order deny,allow
Allow from all
</Directory>

WSGIScriptAlias /bias_experiment_two /var/www/bias_experiment_two/src/bias_experiment/index.wsgi
<Directory /var/www/bias_experiment_two/src/bias_experiment>
<Files index.wsgi>
Order deny,allow
Allow from all
</Files>
</Directory>

</VirtualHost>

任何帮助一如既往,非常感谢。

您不能按原样设置 ServerNameServerName 指令必须是主机名,否则当您有多个 VirtualHost 定义时,基于命名的虚拟主机将不起作用。任何事情都将按原样处理的唯一原因是,当基于名称的虚拟主机设置不正确,或者主机名不匹配时,Apache 将向读取配置时找到的第一个 VirtualHost 发送请求。如果您希望通过相同的主机名访问它们,您应该做的是将所有内容都集中在一个 VirtualHost 中。可以使用不同的端口,但不太方便。

<VirtualHost *:80>

ServerName myserver.scss.tcd.ie

WSGIDaemonProcess bias_experiment

Alias /bias_experiment/static/ /var/www/bias_experiment/static/
<Directory /var/www/bias_experiment/static>
Order deny,allow
Allow from all
</Directory>

WSGIScriptAlias /bias_experiment /var/www/bias_experiment/src/bias_experiment/index.wsgi \
    process-group=bias_experiment application-group=%{GLOBAL}

<Directory /var/www/bias_experiment/src/bias_experiment>
<Files index.wsgi>
Order deny,allow
Allow from all
</Files>
</Directory>

WSGIDaemonProcess bias_experiment_two

Alias /bias_experiment_two/static/ /var/www/bias_experiment_two/static/
<Directory /var/www/bias_experiment_two/static>
Order deny,allow
Allow from all
</Directory>

WSGIScriptAlias /bias_experiment_two /var/www/bias_experiment_two/src/bias_experiment/index.wsgi \
    process-group=bias_experiment_two application-group=%{GLOBAL}

<Directory /var/www/bias_experiment_two/src/bias_experiment>
<Files index.wsgi>
Order deny,allow
Allow from all
</Files>
</Directory>

</VirtualHost>

为了保持 WSGI 应用程序独立,声明了两个单独的守护进程组,并且每个 WSGI 应用程序委托给不同的进程组。

这两个 WSGI 应用程序将被访问为:

如果这些是 Django 站点,您可能需要在 Django 设置文件中进行额外的设置更改,以允许两者 运行 在同一主机名下并且不会相互干扰。