vhosts 目录中的 apache passenger 多个 conf 文件
apache passenger multiple conf files in vhosts dirctory
我有一个旧的 bitnami 服务器,我正在尝试添加一个额外的应用程序。我的 http.conf 文件包含这一行:
IncludeOptional con/vhosts/*.conf
我在 vhosts 目录中有两个文件第一个名为 grade_review.conf,包含以下内容:
<VirtualHost *:80>
RackBaseURI /grade_review
<Directory "/opt/bitnami/apache2/htdocs/grade_review">
Options -MultiViews
<IfVersion < 2.3 >
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.3>
Require all granted
</IfVersion>
</Directory>
</VirtualHost>
这是服务器上现有的应用程序,运行良好。我可以在 http://my_server.com/grade_review 访问该应用程序,没有任何问题。
我添加了第二个,名为 honors_review.conf,包含以下内容:
<VirtualHost *:80>
RackBaseURI /honors_review
<Directory "/opt/bitnami/apache2/htdocs/honors_review">
Options -MultiViews
<IfVersion < 2.3 >
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.3>
Require all granted
</IfVersion>
</Directory>
</VirtualHost>
重新启动apache后,我仍然可以毫无问题地访问第一个应用程序,但是在http://my_server.com/honors_review尝试访问第二个应用程序时出现权限被拒绝的错误。
当我修改第一个文件时,它包含两个应用程序,如下所示。 . .
<VirtualHost *:80>
RackBaseURI /grade_review
<Directory "/opt/bitnami/apache2/htdocs/grade_review">
Options -MultiViews
<IfVersion < 2.3 >
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.3>
Require all granted
</IfVersion>
</Directory>
RackBaseURI /honors_review
<Directory "/opt/bitnami/apache2/htdocs/honors_review">
Options -MultiViews
<IfVersion < 2.3 >
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.3>
Require all granted
</IfVersion>
</Directory>
</VirtualHost>
。 . .并重新启动 apache,这两个应用程序都可以工作。我错过了什么?我是否错误地认为我可以为两个单独的应用程序拥有两个单独的 conf 文件?
你不能在同一个域中有两个虚拟主机,这就是为什么第二个选项有效(两个应用程序在同一个虚拟主机中)。
第一个选项不起作用(每个应用程序都有不同的虚拟主机),这是因为它们被配置为在端口 80 (*:80
) 的所有域中工作。
如果您为每个指定一个 ServerName
(and/or ServerAlias
),它们将在指定的域上工作并且不会有冲突。例如,如果您为第一个虚拟主机设置 ServerName grade_review.my_server.com
,为第二个虚拟主机设置 ServerName honors_review.my_server.com
,并且假设子域设置正确,这将起作用。
与您要实现的目标相关,第二个选项(有效的选项)很有意义,我不会更改它,因为您希望两个应用程序在同一个域上工作,但前缀不同。
我有一个旧的 bitnami 服务器,我正在尝试添加一个额外的应用程序。我的 http.conf 文件包含这一行:
IncludeOptional con/vhosts/*.conf
我在 vhosts 目录中有两个文件第一个名为 grade_review.conf,包含以下内容:
<VirtualHost *:80>
RackBaseURI /grade_review
<Directory "/opt/bitnami/apache2/htdocs/grade_review">
Options -MultiViews
<IfVersion < 2.3 >
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.3>
Require all granted
</IfVersion>
</Directory>
</VirtualHost>
这是服务器上现有的应用程序,运行良好。我可以在 http://my_server.com/grade_review 访问该应用程序,没有任何问题。
我添加了第二个,名为 honors_review.conf,包含以下内容:
<VirtualHost *:80>
RackBaseURI /honors_review
<Directory "/opt/bitnami/apache2/htdocs/honors_review">
Options -MultiViews
<IfVersion < 2.3 >
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.3>
Require all granted
</IfVersion>
</Directory>
</VirtualHost>
重新启动apache后,我仍然可以毫无问题地访问第一个应用程序,但是在http://my_server.com/honors_review尝试访问第二个应用程序时出现权限被拒绝的错误。
当我修改第一个文件时,它包含两个应用程序,如下所示。 . .
<VirtualHost *:80>
RackBaseURI /grade_review
<Directory "/opt/bitnami/apache2/htdocs/grade_review">
Options -MultiViews
<IfVersion < 2.3 >
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.3>
Require all granted
</IfVersion>
</Directory>
RackBaseURI /honors_review
<Directory "/opt/bitnami/apache2/htdocs/honors_review">
Options -MultiViews
<IfVersion < 2.3 >
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.3>
Require all granted
</IfVersion>
</Directory>
</VirtualHost>
。 . .并重新启动 apache,这两个应用程序都可以工作。我错过了什么?我是否错误地认为我可以为两个单独的应用程序拥有两个单独的 conf 文件?
你不能在同一个域中有两个虚拟主机,这就是为什么第二个选项有效(两个应用程序在同一个虚拟主机中)。
第一个选项不起作用(每个应用程序都有不同的虚拟主机),这是因为它们被配置为在端口 80 (*:80
) 的所有域中工作。
如果您为每个指定一个 ServerName
(and/or ServerAlias
),它们将在指定的域上工作并且不会有冲突。例如,如果您为第一个虚拟主机设置 ServerName grade_review.my_server.com
,为第二个虚拟主机设置 ServerName honors_review.my_server.com
,并且假设子域设置正确,这将起作用。
与您要实现的目标相关,第二个选项(有效的选项)很有意义,我不会更改它,因为您希望两个应用程序在同一个域上工作,但前缀不同。