实现虚拟主机有三种方式:基于IP的实现、基于端口的实现、基于FQDN的实现 

                          一、基于IP的实现

 

1.先创建三个站点:

    mkdir /app/site1

    mkdir /app/site2

    mkdir /app/site3

2.在站点里面输入内容:

    echo /app/site1/index.html > site1/index.html

    echo /app/site2/index.html > site2/index.html

    echo /app/site3/index.html > site3/index.html

3.增加三个IP地址:

    ip add a 192.168.93.10/24 dev eth1

    ip add a 192.168.93.20/24 dev eth1

    ip add a 192.168.93.30/24 dev eth1

4.编辑配置文件:

    vim /etc/httpd/conf.d/test.conf

f9374f8f63defa615825f7de3ce28523.png

5.启动httpd服务:service httpd start

6.测试:(统一说明下,测试都是在centos7上做的,包括以下两个实验。)

    curl http://192.168.93.10

    curl http://192.168.93.20

    curl http://192.168.93.30

f9ea91e0034ccea22857e279c3aab477.png

注:建立虚拟主机时,主站点可以关闭。每个站点占用一个IP地址,通常使用IP地址访问站点的用户很少;或是配合DNS服务器上使用:

如:vim /etc/hosts

35216f3fb03aba7e6fce80596474baec.png

实现通过名字访问站点:如图所示

58a2a93fad45ee8b61610ab897a7763c.png

                           二、基于端口的实现

1.编辑配置文件,添加三个端口:

    vim /etc/httpd/conf.d/test.conf

2f9c92dbc295a58b913e23005f7fbbcb.png

2.重启网络服务:

    service network restart

3.重启httpd服务:

    service httpd restart

(注:这里可能会出现httpd服务起不来,查看是不是因为selinux的设置,如果是,进入配置文件修改设置,设置完重启。或者通过命令临时修改:setenforce 0

6561e461ac6fedabf97a534a54f6928a.png

 

f15dc99e10beb168b83029905c288300.png

4.测试:

d74d5f7ad044799643e4ca7f355828d6.png

                         三、基于FQDN的实现

1.在hosts文件中添加站点:

    vim /etc/hosts

e74c0130c005d84122ec916c8e552603.png

2.编辑配置文件:

    vim /etc/httpd/conf.d/test.conf 

58d05a493180885c57ae13847a0424f7.png

3.启动服务:service httpd restart(或使用命令!ser)

4.测试:

c20dc5bfa8cd82277838fa9ed9385ced.png

   centos7与centos6大致相同,只是必须对目录授权,且不需要NameVirutalHost指令。

注:一般虚拟机不要与main主机混用;因此,要使用虚拟主机,一般先禁用main主机。禁用方法:注释中心主机的DocumentRoot指令即可

   以上就是虚拟主机的实现了,欢迎多多指教。