将 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.
有人知道哪里出了问题吗?
为什么 <VirtualHost *:80>
而不是 <VirtualHost *:8080>
?
为什么我指定 Listen
时会出现错误?
我正在使用 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>
任何帮助一如既往,非常感谢。
您不能按原样设置 ServerName
。 ServerName
指令必须是主机名,否则当您有多个 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 设置文件中进行额外的设置更改,以允许两者 运行 在同一主机名下并且不会相互干扰。
我正在尝试弄清楚如何从我的 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.
有人知道哪里出了问题吗?
为什么
<VirtualHost *:80>
而不是<VirtualHost *:8080>
?为什么我指定
Listen
时会出现错误?
我正在使用 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>
任何帮助一如既往,非常感谢。
您不能按原样设置 ServerName
。 ServerName
指令必须是主机名,否则当您有多个 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 设置文件中进行额外的设置更改,以允许两者 运行 在同一主机名下并且不会相互干扰。