基于Apache服务部署虚拟主机功能

如果每台Linux系统的服务器上只能运行一个网站,那么这显然造成硬件资源的浪费。

利用虚拟主机功能,可以把一台物理服务器分割成多个“虚拟的服务器”,实现资源节约,避免浪费。

Apache 的虚拟主机功能是服务器基于用户请求的不同 IP 地址、主机域名或端口号,实现提供多个网站同时为外部提供访问服务的技术。

下面来详细讲解实现方法

本实验基于cenos7搭建Apache httpd-2.4.6 

首先安装

[root@lin10 ~]# yum install httpd –y

由于需要基于不同IP来实现本次实验,所以我添加了三个不同IP

这台linux的ens33网卡原先是172.16.16.1/16 所以添加另外两个IP实现三个不同IP

[root@localhost ~]# ip addr add 172.16.16.2/16 dev ens33

[root@localhost ~]# ip addr add 172.16.16.3/16 dev ens33

image.png

关闭防火墙systemctl disable firewalld

关闭selinux    vi /etc/sysconfig/selinux

              将 SELINUX=enforcing , 修改成disabled 

一  基于 IP 地址 

1 分别在 /opt/www 中创建存放不同网站数据的三个目录,并向其中写入网站首页文件。

mkdir -p /opt/www/1

mkdir -p /opt/www/2

mkdir -p /opt/www/3

 echo "172.16.16.1">/opt/www/1/index.html

 echo "172.16.16.2">/opt/www/2/index.html

 echo "172.16.16.3">/opt/www/3/index.html

2 在 httpd 服务的配置文件中大约 113 行处开始,分别追加写入三个基于 IP 地址的虚 拟主机网站参数,然后保存并退出。记得需要重启 httpd 服务,这些配置才生效。

vim /etc/httpd/conf/httpd.conf

113 <VirtualHost 172.16.16.1> 

image.png

114 DocumentRoot /opt/www/1

115 ServerName www.wawa.com

116 <Directory /opt/www/1 >

117 AllowOverride None

118 Require all granted

119 </Directory>

120 </VirtualHost>

121 <VirtualHost 172.16.16.2>

122 DocumentRoot /opt/www/2

123 ServerName bbs.wawa.com

124 <Directory /opt/www/2 >

125 AllowOverride None

126 Require all granted

127 </Directory>

128 </VirtualHost>

129 <VirtualHost 172.16.16.3>

130 DocumentRoot /opt/www/3

131 ServerName test.wawa.com

132 <Directory /opt/www/3 >

133 AllowOverride None

134 Require all granted

135 </Directory>

136 </VirtualHost>

千万别忘了监听80端口

image.png

 到此基于IP虚拟主机功能就可实现了,启动服务并验证。

image.png image.pngimage.png

二 基于端口号 

 本人偷个懒,直接把之前的基于IP的配置文件修改了,实现基于端口号虚拟主机。

基于80 8080 和6111这三个端口

vim /etc/httpd/conf/httpd.conf 

监听端口需要调整

image.png 

image.png

验证:

image.pngimage.png image.png

三 基于主机域名

基于主机域名需要dns解析来实现此操作,这里就不罗列出来了具体操作在这()。

还是老样子,我还是用之前的文件来修改

监听端口改成80

vim /etc/httpd/conf/httpd.conf

image.png 

image.png

验证:

image.png image.png