【任务描述】
虚拟主机是在一台服务器上运行多个Web站点。 有3种设定虚拟主机的方式:
(1) 基于名称的虚拟主机。 只需服务器有一个IP地址即可, 所有的虚拟主机共享同一个IP, 各虚拟主机之间通过域名进行区分。 但需要新版本的HTTP1.1浏览器支持。 这种方式已经成为建立虚拟主机的标准方式。
(2) 基于IP的虚拟主机。 需要在服务器上绑定多个IP地址, 然后配置Apache, 把多个网站绑定在不同的IP地址上, 访问服务器上不同的IP地址, 就可以看到不同的网站。
(3) 基于端口号的虚拟主机。 只需服务器有一个IP地址即可, 所有的虚拟主机共享同一个IP, 各虚拟主机之间通过不同的端口号进行区分。 在设置基于端口号的虚拟主机的配置时, 需要利用Listen语句设置所监听的端口。
【任务分析】
本任务分别使用3种设定虚拟主机的方式来完成对虚拟主机的配置。
【任务实施】
1. 配置基于域名的虚拟主机
根据所示的配置参数,搭建域名不同的两个虚拟主机。 服务器IP地址为172.16.102.61,两个虚拟主机的域名分别为:
www.web1.com
www.web2.com
站点根目录为:
/var/www/myweb1/
/var/www/myweb2/
日志文件分别存放在:
/var/vhlogs/myweb1
/var/vhlogs/myweb2
(1)注册虚拟主机所要使用的域名。
实现域名解析可以有两种方法:
①在客户机上通过修改/etc/hosts文件实现。 这是一种比较简单的方法, 只需在/etc/hosts文件中加入下面两行:
172.16.102.61 www.web1.com
172.16.102.61 www.web2.com
②在DNS服务器上通过配置DNS实现。 需要给每台虚拟主机创建一个CNAME。 在var/named/named.hosts文件中加入以下两行:
www.web1.com IN CNAME a100.redflag.com.
www.web2.com IN CNAME a100.redflag.com
重启DNS后, 可以用nslookup和ping命令来测试, 命令如下:
#nslookup
>settype=cname
>hosta.redflag.com
#ping www.web1.com
#ping www.web2.com
使用虚拟主机可实现一机多站。
(2) 创建所需的目录和默认首页文件。
在/usr目录下创建4个目录, 分别用来存放两主机的网页和日志文件。 操作如下:
#mkdir -p /var/www/myweb1
#mkdir -p /var/www/myweb2
-p——快速建立目录结构中指定的每个目录。
echo "thisiswww.web1.com′s web!!">>/var/www/myweb1/index.html
echo "thisiswww.web2.com′sweb!!">>/var/www/myweb2/index.html
(3) 编辑/etc/httpd/conf/httpd.conf配置文件, 设置Listen侦听端口:
Listen 80
(4) 在httpd.conf文件最后添加虚拟主机的定义:
Name Virtual Host172.16.102.209
(5) 在httpd.conf文件最后添加以下两台虚拟机:
<Virtual Host172.16.102.61>
Server Admin webmaster@web1.com
Document Root /var/www/myweb1
Server Name www.web1.com
Error Log logs logs/myweb1 /error_log
Custom Log logs/myweb1 /access_log common
</Virtual Host>
<Virtual Host172.16.102.61>
Server Admin webmaster@web1.com
Document Root /var/www/myweb1
Server Name www.web2.com
Error Log logs logs/myweb2 /error_log
Custom Log logs/myweb2 /access_log common
</Virtual Host>
(6) 重新启动httpd服务:
service httpd restart
(7) 切换到图形界面。
启动浏览器在地址栏输入各自的域名, 观察各自的页面能否显示在客户端看到的访问界面。
2. 配置基于IP地址的虚拟主机
(1) 为一块网卡绑定多个IP地址:
#cd /etc/sysconfig/network-scripts
#cp ifcfg-eth0 ifcfg-eth0:0
#vi ifcfg-eth0:0
DEVICE=eth0:0
IPADDR=172.16.102.121
#ifdown eth0 //禁用网卡
#ifup eth0:0 //启用网卡
#ifup eth0
(2) 注册虚拟主机所使用的域名:
#vi /etc/hosts
增加两行:
172.16.102.61 www.mylinux1.com
172.16.102.121 www.mylinux2.com.
(3) 创建Web站点根目录和默认首页文件。 在/usr目录下创建两个目录, 分别用来存放两主机的网页:
#mkdir -p /var/www/ip2 /var/www/ip3
#echo “thisis172.16.102.61's web!!”>>/var/www/ip2 /index.html
#echo “thisis172.16.102.121'sweb!!”>>/var/www/ip3/index.html
(4) 编辑/etc/httpd/conf/httpd.conf配置文件, 保证有以下Listen指令:
Listen 80
(5) 配置虚拟主机:
<Virtual Host 172.16.102.61>
Server Name www.mylinux1.com
Document Root /var/www/ip2
</Virtual Host>
<Virtual Host 172.16.102.121>
Server Name www.mylinux2.com
Document Root /var/www/ip3
</Virtual Host>
(6) 测试。
重新启动httpd服务。 切换到图形界面启动浏览器, 在地址栏输入各自的域名, 观察各自的页面能否显示。
3. 配置基于端口号的虚拟主机
假设服务器IP地址为172.16.102.61, 创建基于8000和8800两个不同端口号的虚拟主机。 要求不同的虚拟主机对应的主目录不同, 默认文档的内容也不同。
(1) 分别创建两个主目录和两个默认文件:
#mkdir /var/www/port1 /var/www/port2
#echo “thisisport8000's web!!”>>/var/www/port1 /index.html
#echo “thisisport8800'sweb!!”>>/var/www/port2/index.html
(2) 在httpd.conf文件中, 设置基于端口号的虚拟主机, 配置内容如下:
Listen 8000
Linten 8800
<Virtual Host 172.16.102.61:8000>
Server Name www.mylinux1.com
Document Root /var/www/port8000
</Virtual Host>
<Virtual Host 172.16.102.61:8800>
Server Name www.mylinux2.com
Document Root /var/www//port8800
</Virtual Host>
(3) 重新启动httpd服务。
(4) 在客户端访问。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。