搭建主从服务器
任务需求
客户端通过访问 www.nihao.com 后,能够通过 dns 域名解析,访问到 nginx 服务中由 nfs 共享的首页文件,内容为:Very good, you have successfully set up the system. 各个主机能够实现时间同步,并且都开启防火墙来保证服务安装。
主机规划:
(注:上述主机均配置了本地仓库)
1.分别修改主机名和IP地址
web:
[root@localhost ~]# hostnamectl hostname web
[root@localhost ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.10.8/24 ipv4.gateway 192.168.10.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
[root@localhost ~]# nmcli c up ens160
nfs:
[root@localhost ~]# hostnamectl hostname nfs
[root@localhost ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.10.9/24 ipv4.gateway 192.168.10.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
[root@localhost ~]# nmcli c up ens160
dns1:
[root@localhost ~]# hostnamectl hostname dns1
[root@localhost ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.10.18/24 ipv4.gateway 192.168.10.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
[root@localhost ~]# nmcli c up ens160
dns2:
[root@localhost ~]# hostnamectl hostname dns2
[root@localhost ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.10.28/24 ipv4.gateway 192.168.10.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
[root@localhost ~]# nmcli c up ens160
client:
[root@localhost ~]# hostnamectl hostname client
[root@localhost ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.10.7/24 ipv4.gateway 192.168.10.2 ipv4.dns "192.168.10.18 192.168.10.28" connection.autoconnect yes
[root@localhost ~]# nmcli c up ens160
关闭几台服务器的selinux:
[root@web ~]# sed -i 's/SELINUX=enforcing/SELINUX=Permissive/g' /etc/selinux/config
2.配置NFS服务器
2.1安装NFS软件
[root@nfs ~]# mount /dev/sr0 /mnt/
[root@nfs ~]# dnf install nfs-utils -y
2.2启动NFS服务
[root@nfs ~]# systemctl start nfs-server
[root@nfs ~]# systemctl enable nfs-server
2.3在防火墙中放行服务
[root@nfs ~]# firewall-cmd --permanent --add-service=nfs
success
[root@nfs ~]# firewall-cmd --reload
success
2.4配置NFS服务
在nfs主机上创建共享目录,暴露给web端,并赋予写的权限(w)
[root@nfs ~]# mkdir /nfs/data -p
[root@nfs ~]# cat /etc/exports
/nfs/data 192.168.10.8(rw)
[root@nfs ~]# systemctl restart nfs-server.service
[root@nfs ~]# showmount -e 192.168.10.9
[root@nfs ~]# chmod o+w /nfs/ -R
3.配置web服务器
3.1安装nginx,nfs软件
[root@web ~]# mount /dev/sr0 /mnt/
[root@web ~]# dnf install nginx nfs-utils -y
3.2在防火墙中放行服务
[root@web ~]# firewall-cmd --permanent --add-service=nfs
success
[root@web ~]# firewall-cmd --permanent --add-service=http
success
[root@web ~]# firewall-cmd --reload
success
3.3创建nihao.conf的配置文件
[root@web ~]# cat /etc/nginx/conf.d/nihao.conf
server {
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
server_name www.nihao.com;
root /var/www/nihao;
}
3.4创建nfs的挂载目录
[root@web ~]# mkdir /var/www/nihao -p
3.5执行挂载
[root@web ~]# mount -t nfs 192.168.10.9:/nfs/data /var/www/nihao/
3.6在nfs端写入www.nihao.com的首页文件
[root@nfs ~]# echo Very good, you have successfully set up the system. > /nfs/data/index.html
3.7在web端查看
[root@web ~]# cat /var/www/nihao/index.html
Very good, you have successfully set up the system.
3.8重启nginx服务
[root@web ~]# systemctl restart nginx
4.配置dns服务端
4.1在两台dns服务端下载dns
[root@dns1 ~]# mount /dev/sr0 /mnt/
[root@dns1 ~]# dnf install bind -y
4.2在两台dns服务端放行服务
[root@dns1 ~]# firewall-cmd --permanent --add-service=dns
success
[root@dns1 ~]# firewall-cmd --reload
success
4.3在dns1服务端修改主配置文件
[root@dns1 ~]# cat /etc/named.conf
options {
listen-on port 53 { 192.168.10.18; };
directory "/var/named";
allow-query { any; };
};
zone "nihao.com" IN {
type master;
file "nihao.com";
};
4.4在dns1服务端配置区域文件
[root@dns1 ~]# cat /var/named/nihao.com
$TTL 1D
@ IN SOA @ admin.nihao.com. (0 1D 2H 3W 2D)
IN NS ns1
IN NS ns2
ns1 IN A 192.168.10.18
ns2 IN A 192.168.10.28
www IN A 192.168.10.8
4.5在dns2服务端修改主配置文件
[root@dns2 ~]# cat /etc/named.conf
options {
listen-on port 53 { 192.168.10.28; };
directory "/var/named";
};
zone "nihao.com" IN {
type slave;
masters { 192.168.10.18; };
file "slaves/nihao.com";
};
4.6检查配置语句
[root@dns1 ~]# named-checkconf
[root@dns1 ~]# named-checkzone nihao.com /var/named/nihao.com
zone nihao.com/IN: loaded serial 0
OK
4.7在两台dns服务端重启服务
[root@dns1 ~]# systemctl restart named
4.8测试dns解析
dns1:
[root@dns1 ~]# dig -t NS nihao.com @192.168.10.18
[root@dns1 ~]# dig -t A nihao.com @192.168.10.18
dns2:
[root@dns2 ~]# dig -t NS nihao.com @192.168.10.28
[root@dns2 ~]# dig -t A nihao.com @192.168.10.28
5.客户端测试
[root@client ~]# curl www.nihao.com
Very good, you have successfully set up the system.
附:
测试dns解析截图:
dns1:
dns2: