Linux虚拟主机配置(2)


AllowOverride表示是否允许该配置被覆盖。例如:AllowOverride None表示不允许该Directory目录下的访问控制文件(.htaccess)来改变这里的配置;AllowOverride All表示允许访问控制文件.htaccess来改变这里的配置。


iv.Order Allow,Deny


Order用来表示对页面的访问控制顺序,后面的一项是默认选项,如:Order Allow,Deny则默认是Deny。Allow from all表示允许所有用户。


3. 基于IP的多站点配置

适用场景:web服务器存在多块网卡,有多个IP地址,这里假设有两个IP地址,一个为:192.168.17.128,它对应域名;一个为:192.168.17.131,它对应域名。


a. 存在主服务器

1) 基本配置

还记得在/etc/httpd/conf/httpd.conf中提到的三大块配置,其中就有主服务配置,假设192.168.17.128对应主服务器,而另外一个IP192.168.17.131用于构建两个或多个虚拟主机。配置如下:


192.168.17.128上主服务器配置:


i.监听80端口:Listen 80


ii.主服务器配置区:ServerName


iii.主服务器配置区:DocumentRoot /var/www/html/test01


192.168.17.131上多虚拟主机配置:


虚拟主机配置:VirtualHost 192.168.17.131:80


/etc/httpd/conf.d/中添加、的配置,配置内容与“基于域名的多站点配置”等同。


在web浏览器中分别访问:、和会显示各自的输出。


注意:设置主服务器后,所有不是针对192.168.17.131的请求都将由主服务器来伺服;而提交给192.168.17.131却没有主机名或没有Host:头的请求,都将为伺服(因为配置文件中,它最靠前)。


2) 测试场景

需要测试两种情况:


一、不是针对192.168.17.131的请求都将由主服务器来伺服


二、提交给192.168.17.131却没有主机名或没有Host:头的请求,都将为伺服


现在为web服务器配置三个网络,如下图所示:

并在本机的hosts文件中,添加如下IP与域名的对应关系:

访问,页面输出“Welcome to access web site test01 ... ”,验证了不是针对192.168.17.131的请求都将由主服务器来伺服。

访问,页面输出“Welcome to access web site test02 ... ”,验证了提交给192.168.17.131却没有主机名或没有Host:头的请求,都将为伺服。

b. 不存在主服务器

适用场景:假设web服务器有两个IP地址(192.168.17.128和172.20.30.40),该机器内网和外网均可以访问,在外部,域名:指向外部地址172.20.30.40,而在内部同样的域名指向内部地址192.168.17.128。


服务器可以配置为向来自内部和外部的请求提供同样的内容,只需要一个VirtualHost配置段就可以达到这个目的,服务器配置如下:


监听80端口:Listen 80


配置虚拟主机:NameVirtualHost 192.168.17.128:80

NameVirtualHost 172.20.30.40:80

/etc/httpd/conf.d/www.test01.conf配置内容: 

[root@Slaver conf.d]# cat
<VirtualHost 192.168.17.128:80 172.20.30.40:80>
  DocumentRoot /var/www/html/test01
  ServerName
  <Directory /var/www/html/test01>
      Options Indexes FollowSymLinks
      AllowOverride All
      Order Allow,Deny
      Allow from all
  </Directory>
</VirtualHost>
[root@Slaver conf.d]#


现在从不同网络提交的请求都会由同一个VirtualHost来伺服。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/c08aea3bd7b9d288d4ca7f75a2f94bc1.html