首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Centos 7中的多个虚拟主机无法协同工作。

Centos 7中的多个虚拟主机无法协同工作。
EN

Unix & Linux用户
提问于 2016-12-16 11:38:36
回答 3查看 6.1K关注 0票数 1

我的服务器信息是

代码语言:javascript
复制
Server version: Apache/2.4.6 (CentOS)
Server built:   Nov 19 2015 21:43:13

我试图为两个不同的站点配置虚拟主机: biz.example.com和pin.example.com,它们都托管在同一台服务器上。有两个不同的文件夹位于'var/www/html/‘命名'biz’和'pin‘与他们尊重的项目文件,为上述2个网站。我正试图按以下方式配置它。

在下面配置的/etc/主机中

代码语言:javascript
复制
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

xxx.xxx.xxx.xxx biz.example.com
xxx.xxx.xxx.xxx pin.example.com

Xxx.xxx被服务器IP地址所取代。

在/etc/httpd/conf/httpd.conf内

代码语言:javascript
复制
IncludeOptional sites-enabled/*.conf

现在,在/etc/httpd/site下面有biz.conf和pin.conf文件。我还在/etc/httpd下启用了文件夹站点,其中有两个指向站点的biz.conf和pin.conf的文件,可用文件夹使用下面的命令

代码语言:javascript
复制
ln -s /etc/httpd/sites-available/biz.conf /etc/httpd/sites-enabled/biz.conf

ln -s /etc/httpd/sites-available/pin.conf /etc/httpd/sites-enabled/pin.conf

biz.conf有以下几个方面

代码语言:javascript
复制
<VirtualHost *:80>
ServerName http://biz.example.com/
ServerAlias http://biz.example.com/
DocumentRoot "/var/www/html/biz"
<directory "/var/www/html/biz">
        Options Indexes FollowSymLinks
        AllowOverride all
        Order Deny,Allow
        Allow from 127.0.0.1
</directory>
</VirtualHost>

pin.conf文件中的配置被提到为

代码语言:javascript
复制
<VirtualHost *:80>
ServerName http://pin.example.com/
ServerAlias http://pin.example.com/
DocumentRoot "/var/www/html/pin"
<directory "/var/www/html/pin">
        Options Indexes FollowSymLinks
        AllowOverride all
        Order Deny,Allow
        Allow from 127.0.0.1
</directory>
</VirtualHost>

在这个设置中,如果我尝试访问http://biz.example.com/,正确的网站(biz网站)正在加载。但是如果我试图访问http://pin.example.com/,那么biz网站也是加载而不是pin网站。多个配置不能协同工作。

我还试图将biz.conf和pin.conf的虚拟配置合并到一个文件biz.conf中,但它也不起作用。

EN

回答 3

Unix & Linux用户

发布于 2016-12-16 12:15:59

答案:

1)必须从ServerName和ServerAlias中移除尾随斜杠

2)在这里,我们可以删除ServerAlias和ServerName和ServerAlias,两者是相同的。

票数 0
EN

Unix & Linux用户

发布于 2017-11-06 18:27:39

从路径中删除双引号

代码语言:javascript
复制
DocumentRoot /var/www/html/pin
<directory /var/www/html/pin>
票数 0
EN

Unix & Linux用户

发布于 2019-09-01 10:19:32

在这个设置中,如果我尝试访问http://biz.example.com/,正确的网站(biz网站)正在加载。但是如果我试图访问http://pin.example.com/,那么biz网站也是加载而不是pin网站。

这是因为ServerNameServerAlias指令都不匹配(语法错误),在本例中,第一个定义的VirtualHost获取所有请求。

在具有非常类似配置的文档中描述了这种行为:

(httpd.apache.org/docs/2.4/vhosts/examples.html)在单个IP地址上运行多个基于名称的网站.

确保Apache侦听端口80侦听 DocumentRoot "/www/example1“ServerName www.example.com # ServerName www.example.com> DocumentRoot "/www/example2”ServerName www.example.org # Other指令此处星号匹配所有地址,因此主服务器不提供任何请求。由于具有ServerName www.example.com的虚拟主机位于配置文件的第一位,所以它具有最高的优先级,可以看作是默认的或主服务器。这意味着,如果接收到的请求与指定的ServerName指令不匹配,则该请求将由第一个<VirtualHost>. 处理。

解决方案:

  1. ServerName必须不带http://前缀,不带尾斜杠,即ServerName biz.example.com和ServerName pin.example.com。
  2. 可以删除ServerAlias,因为它具有与ServerName相同的值。
  3. <Directory></Directory>应该以大写字母开头
  4. 旧的Apache2.2访问控制语法应该更改为新的Apache2.4 Require语法。订单拒绝,允许从127.0.0.1应该替换为要求本地参见
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/330825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档