我的服务器信息是
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/主机中
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.comXxx.xxx被服务器IP地址所取代。
在/etc/httpd/conf/httpd.conf内
IncludeOptional sites-enabled/*.conf现在,在/etc/httpd/site下面有biz.conf和pin.conf文件。我还在/etc/httpd下启用了文件夹站点,其中有两个指向站点的biz.conf和pin.conf的文件,可用文件夹使用下面的命令
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.confbiz.conf有以下几个方面
<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文件中的配置被提到为
<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中,但它也不起作用。
发布于 2016-12-16 12:15:59
答案:
1)必须从ServerName和ServerAlias中移除尾随斜杠
2)在这里,我们可以删除ServerAlias和ServerName和ServerAlias,两者是相同的。
发布于 2017-11-06 18:27:39
从路径中删除双引号
DocumentRoot /var/www/html/pin
<directory /var/www/html/pin>发布于 2019-09-01 10:19:32
在这个设置中,如果我尝试访问http://biz.example.com/,正确的网站(biz网站)正在加载。但是如果我试图访问http://pin.example.com/,那么biz网站也是加载而不是pin网站。
这是因为ServerName和ServerAlias指令都不匹配(语法错误),在本例中,第一个定义的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>. 处理。
ServerName必须不带http://前缀,不带尾斜杠,即ServerName biz.example.com和ServerName pin.example.com。ServerAlias,因为它具有与ServerName相同的值。<Directory>和</Directory>应该以大写字母开头Require语法。订单拒绝,允许从127.0.0.1应该替换为要求本地参见https://unix.stackexchange.com/questions/330825
复制相似问题