1.什么是虚拟主机呢?
在一个Apache服务器上可以配置多个虚拟主机,实现一个服务器提供多站点服务,其实就是访问同一 个服务器上的不同目录。一个服务器主机可以运行多个网站,每个网站都是一个虚拟主机。
2.虚拟主机的类型
Apache虚拟主机有三种类型
1.基于IP访问
2.基于域名访问
3.基于端口访问
3.安装Apache启动,准备虚拟主机的工作
1.基于IP访问
[root@localhost ~]# yum install httpd
[root@localhost ~]# systemctl restart httpd
[root@localhost ~]# ip a #查看原有IP
[root@localhost ~]# ip addr add 192.168.72.161/24 dev ens33 #手动添加ip(注意添加的ip必须与虚机属于同一网络段L)
[root@localhost ~]# ip a #可以看见161IP
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:99:31:76 brd ff:ff:ff:ff:ff:ff
inet 192.168.72.151/24 brd 192.168.72.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.72.161/24 scope global secondary ens33
valid_lft forever preferred_lft forever
inet6 fe80::966a:1c4d:8e7c:1088/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf #添加虚拟主机配置文件
#在配置文件执行 /DocumentRoot
#添加下面这一段代码
<VirtualHost 192.168.72.161:80>
DocumentRoot "/var/www/kw" #访问文件的目录
</VirtualHost>
[root@localhost conf.d]# systemctl restart httpd
[root@localhost conf.d]# mkdir -p /var/www/kw #记住-P 递归创建目录,即使上级目录不存在,会按目录层级自动创建目录
[root@localhost conf.d]# echo "我是康威" >> /var/www/kw/index.html echo是字符串的输出 >>是追加 >是覆盖
[root@localhost conf.d]# netstat -ntlp| grep httpd #确定已经启动Apache
tcp6 0 0 :::80 :::* LISTEN 2052/httpd
[root@localhost conf.d]#systemcl stop firewalld #关闭防火墙
[root@localhost conf.d]#elinks http://192.168.72.161 -dump #elinks是准纯文本命令
我是康威
[root@localhost conf.d]# elinks http://192.168.72.151 -dump
"hello word"
2.基于端口访问
[root@localhost conf.d]# vim /etc/httpd/conf/httpd.conf
#执行 /Listen
#Listen 12.34.56.78:80
Listen 80
Listen 81 #新增一条81端口
DocumentRoot "/var/www/html"
<VirtualHost 192.168.72.161:81> #把80改成81
DocumentRoot "/var/www/kw"
</VirtualHost>
[root@localhost conf.d]# systemctl restart httpd
[root@localhost conf.d]# netstat -pltun|grep httpd #查看81端口是否启动
tcp6 0 0 :::80 :::* LISTEN 2175/httpd
tcp6 0 0 :::81 :::* LISTEN 2175/httpd
[root@localhost conf.d]# elinks http://192.168.72.161:81 --dump #验证
我是康威
3。基于域名
[root@localhost conf.d]# vim /etc/httpd/conf/httpd.conf
DocumentRoot "/var/www/html"
<VirtualHost 192.168.72.161:81>
DocumentRoot "/var/www/kw"
ServerName www.hw.com #添加域名
</VirtualHost>
[root@localhost conf.d]# systemctl restart httpd
[root@localhost conf.d]# netstat -pltun|grep httpd
tcp6 0 0 :::80 :::* LISTEN 2207/httpd
tcp6 0 0 :::81 :::* LISTEN 2207/httpd
[root@localhost conf.d]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.72.161 www.hw.com #加入域名
[root@localhost conf.d]# elinks www.hw.com:81 -dump
我是康威
~