作业要求(PDF)参见这里。
这几天,在整理我的移动硬盘和服务器上的存储的历史文件的时候,发现现在Linux课/云计算课的很多实验内容我在高中早就在RaspberryPi(树莓派)上搭建过实验过。
所以,索性就把每篇我以前做过的实验写成笔记发出来供同学们参考吧(前提是我几年前的笔记文件没删且还找得到)。
其她:想考RedHat(红帽)Linux认证的可以看这篇。
注:我的学号尾号是36,除了我本人外,使用如下示例截屏PS交作业均属无效。
由于我的设备(电脑)为SurfaceGo,开不起虚拟机,使用VULTR在 波兰共和国-华沙 创建一台临时云服务器实例作为实验用途(按小时计费,我20分钟做完顶多0.015美元四舍五入0.02美元)。

使用SSH远程连接到云服务器。
首先,安装vim(编辑工具)wget(下载工具)bind(named DNS)bind-utils(一组DNS工具包)

安装完成,首先为了避免我们出错把配置文件配的服务崩了,备份一下初始的配置文件。
cp /etc/named.conf /etc/named.conf.backup
cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.backup
备份完配置文件,开始编辑主配置文件named.conf;将 “lister-on port 53” 改为监听你的云服务器/虚拟机的IP地址;将 “allow-query” 改为any。
vim /etc/named.conf

编辑完主配置文件named.conf,编辑区域配置文件named.rfc1912.conf;在文件最后加上作业题目要求的 “99.cn”和”99-sts.cn” 区域信息。
vim /etc/named.rfc1912.zones
# 在文件最后加上
zone "99.cn" IN {
type master;
file "named.99.cn.zone";
allow-update { none; };
};
zone "99-sts.cn" IN {
type master;
file "named.99-sts.cn.zone";
allow-update { none; };
};

然后开始编辑每个区域的解析文件,在/var/named目录下。
cd /var/named/
首先,将空白的示例配置文件复制一份,以供编辑。
将自带的CNAME和MX删掉,这两个解析分别用于指向另一个地址以及邮件服务器交换解析,我们的课程暂时用不到。
cp named.empty named.99.cn.zone
vim named.99.cn.zone
# 设置如下解析
A <ServerIP>
www A <ServerIP>

由于实验要求同个IP通过vHosts实现双站点,由此可知两个域名的解析文件是一样的(IP一样),直接复制一份即可。
cp named.99.cn.zone named.99-sts.cn.zone
变更所属组,不然会权限问题无法读取和解析(你不担心安全问题直接777权限也不是不行)。
chown :named named.*
开放防火墙端口(区域传输使用tcp/53,用户解析使用udp/53)(你不担心安全问题直接把防火墙关掉也行)。
firewall-cmd --zone=public --add-port=53/tcp --permanent
firewall-cmd --zone=public --add-port=53/udp --permanent
启动BIND(named)、设置开机自启、并检查运行是否正常。
systemctl restart named
systemctl enable named
systemctl status named

在电脑/物理机检查是否能正常解析。
nslookup
> server <ServerIP>
> 99.cn
> www.99.cn
> 99-sts.cn
> www.99-sts.cn

至此,BIND(named)(DNS)就配置完了。
开始配置ApacheHTTPD的Web服务(一个IP多个域名站点)。
首先安装。
yum install httpd -y
创建两个站点的目录。
mkdir /var/www/page1
mkdir /var/www/page2
编辑httpd.conf配置文件,在最后Include引入vHosts配置文件。
vim /etc/httpd/conf/httpd.conf
# 在最后加上
Include conf/vHosts.conf
# 注:若你分不清Linux相对路径和绝对路径的关系,建议在此处使用全路径,可用 "pwd" 查看。

下一步,创建和编辑所指向的vHosts.conf虚拟主机配置文件。
vim /etc/httpd/conf/vhosts.conf
# 编辑内容
<VirtualHost *:80>
ServerAdmin me@iamsts.cn
DocumentRoot "/var/www/page1"
ServerName 99.cn
ServerAlias 99.cn www.99.cn
</VirtualHost>
<VirtualHost *:80>
ServerAdmin me@iamsts.cn
DocumentRoot "/var/www/page2"
ServerName 99-sts.cn
ServerAlias 99-sts.cn www.99-sts.cn
</VirtualHost>

echo写入Web页面内容。
echo "This is 99.cn" >> /var/www/page1/index.html
echo "This is 99-sts.cn" >> /var/www/page2/index.html
开放防火墙端口(HTTP1.1和HTTP/2 两代协议使用tcp/80&443,但最新的HTTP/3代协议的QUIC支持和优先使用udp/80&443)(你不担心安全问题直接把防火墙关掉也行)。
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=80/udp --permanent
启动Apache(HTTPD)、设置开机自启、并检查运行是否正常。
systemctl restart httpd
systemctl enable httpd
systemctl status httpd
至此,全部做完了,下面开始测试。
首先将本机的DNS改为服务器IP。
echo "nameserver 127.0.0.1" > /etc/resolv.conf
使用curl分别测试解析指向同一个IP的两个域名是否显示内容不一样。
curl http://99.cn
curl http://www.99.cn
curl http://99-sts.cn
curl http://www.99-sts.cn

题外话备注:一个IP多个企业站点 在国内环境无法实现,根据国内备案要求,一个备案主体需对应一个IP,不能多个备案主体共用IP。
实验做完,Destroy(销毁)实例(临时云服务器),释放计算资源和IP。

完成。
喵!