配置基于域名的虚拟主机可以实现许多不同的主机共享相同的IP地址。


本次实训目的:结合Bind域名解析为Apache服务器配置基于域名的虚拟主机。

基于IP的虚拟主机使用连接的IP地址来确定要服务的正确虚拟主机。因此,每个主机都需要有一个单独的IP地址。

大洋,公众号:大洋数据港湾Apache虚拟主机 - 基于IP地址

使用基于域名的虚拟主机,服务器将读取客户端HTTP请求报文头域中的 Host 部分以区分需要访问的虚拟主机从而实现许多不同的主机可以共享相同的IP地址。

f1b0e3c293316ad7afd4b4eb3d67124f.png

Tips:下文中提及的域名以及 IP 地址需要按前期规划填写。

配置DNS解析

基于域名的虚拟主机实现的第一步就是配置域名解析。本次将使用bind演示快速搭建符合要求的DNS服务器。

安装Bind组件

检查Bind组件是否安装。

rpm -qa | grep bind

安装Bind组件,如有安装记录则跳过该步骤。

yum -y install bind

配置Bind组件

配置核心文件

[root@dns1 ~]# vim /etc/named.conf

options {    listen-on port 53 { 10.0.0.71; };    allow-query { any; };};

d961cf4ce7429aca10f73347bbaf4128.png

配置区域定义文件

[root@dns1 ~]# vim /etc/named.rfc1912.zones

zone "atyyvrh.com" IN {    type master;    file "named.atyyvrh.com";    allow-update { none; };};

f1101a55e7214910b812971796b9fdb4.png

通过模版生成正向区域文件并对其进行配置

cd /var/namedcp -a named.localhost named.atyyvrh.com

[root@dns1 named]# vim named.atyyvrh.com

7409eb1eb13bf84b8150f13c651b23a4.png

调整防火墙并启动named服务

firewall-cmd --permanent --add-service=dnsfirewall-cmd --reloadsystemctl restart named

测试域名解析

选择正向区域中的其中一个域名并使用指定DNS服务器对其解析。

nslookup www.atyyvrh.com 10.0.0.71

9a4f0d04b87bbcc57b243280058690a6.png

调整网卡接口配置

如需在本机测试虚拟主机效果需要将本机网卡的DNS服务器地址修改为自己的IP地址。

[root@dns1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

DNS1=10.0.0.71

配置完成后重启使网卡配置生效

systemctl restart network

Tips1:DNS服务器非本机架设时需要将局域网中其他DNS服务器中配置正确的正向解析。

Tips2:在本机中测试虚拟主机效果,也可以修改本地 hosts 文件通过本地解析的方式实现。

构建容器

[root@dns1 ~]# vim /etc/httpd/conf.d/virtualhost-name.conf

    ServerName www.atyyvrh.com    DocumentRoot /var/www/html/www    ServerName server.atyyvrh.com    DocumentRoot /var/www/html/server    ServerName ftp.atyyvrh.com    DocumentRoot /var/www/html/ftp    ServerName smtp.atyyvrh.com    DocumentRoot /var/www/html/smtp    ServerName pop.atyyvrh.com    DocumentRoot /var/www/html/pop

d98522df70a7690e5c36d9e6ef10a9cb.png

创建相互独立的站点

cd /var/www/htmlmkdir -p {www,server,ftp,smtp,pop}echo 'Test form name www' > www/index.htmlecho 'Test form name server' > server/index.htmlecho 'Test form name ftp' > ftp/index.htmlecho 'Test form name smtp' > smtp/index.htmlecho 'Test form name pop' > pop/index.html

Tips:此处使用了 mkdir -p 命令批量创建了5个文件夹。

重启Apache服务

systemctl restart httpd

此时在浏览器地址栏输入 http://www.atyyvrh.com 并尝试将 www 替换为前期规划的其他三级域名进行访问即可看到不同的站点啦~

e5ed2ef85a617fb028d80a077ac9e040.png

通过shell访问纯文本网页

由于我们创建的测试站点都是纯文本类型,可以在终端中通过一些工具快速访问搭建的纯文本网页查看虚拟主机的效果。下面会分别介绍curl和lynx两款软件。

cURL

cURL是一个利用URL语法在命令行下工作的文件传输工具,可以直接通过命令调用。

curl http://www.atyyvrh.com

38e56338bd1cd9f40031b0b925eaa756.png

lynx

lynx是一款免费的开源纯文本模式的网页浏览器软件,相较于cURL需要单独安装后才能使用。

yum -y install lynxlynx http://www.atyyvrh.com

5e9052c2722101c8a5ede28ad8181011.png


以上就是这篇文章的全部内容,如果喜欢我们的内容欢迎关注收藏评论转发喔~

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐