一、实验目的
配置一个基于nginx的web服务器要求如下:
1、该web服务器使用主机名www.example.com来访问
2、该主机名由本地提供的DNS服务进行解析,并且提供反向解析
3、该DNS服务器应该还有一个从服务器
4、该web服务器访问应使用端口9093
5、该web服务器的内容页面应存放在/u01/www/目录下
6、该web服务器需要从Windows主机直接访问 9093 防火墙放行
7、系统上的防火墙和SELinux服务必须正常运行
8、该web服务器在系统重启后,依然可以正常访问。
二、实验思路
1.DNS 层:实现www.example.com的正向 / 反向解析,搭建主从服务器保障可用性。
2.Nginx 层:监听 9093 端口,页面存储于/u01/www/,配置开机自启。
3.安全层:防火墙放行 9093 端口,SELinux 正常运行且不阻断服务。
4.访问层:Windows 主机可直接访问,系统重启后服务仍可用。
三、实验步骤
1、DNS 主从服务器(实现主机名解析与反向解析)
(1)主服务器
1.安装bind包
bash
[root@localhost ~]# dnf install bind bind-utils -y
正在更新 Subscription Management 软件仓库。
无法读取客户身份
本系统尚未在权利服务器中注册。可使用 "rhc" 或 "subscription-manager" 进行注册。
nginx stable repo 2.0 kB/s | 3.0 kB 00:01
baseos 656 kB/s | 2.7 kB 00:00
appstream 2.7 MB/s | 2.8 kB 00:00
软件包 bind-32:9.18.33-5.el10.x86_64 已安装。
软件包 bind-utils-32:9.18.33-5.el10.x86_64 已安装。
依赖关系解决。
无需任何处理。
完毕!
2.编辑主配置文件
bash
[root@localhost ~]# vim /etc/named.conf
options {
listen-on port 53 { 192.168.153.130; };
directory "/var/named";
};
zone "example.com" IN{
type master;
file "example.com";
};
zone "153.168.192.in-addr.arpa" IN {
type master;
file "named.fanxiang";
};
3.创建正向和反向解析文件
bash
[root@localhost ~]# vim /var/named/example.com
$TTL 1D
@ IN SOA @ admin.example.com.(
0
1
1
1
1)
IN NS ns.example.com.
ns IN A 192.168.153.130
www IN A 192.168.153.130
[root@localhost ~]# cp /var/named/example.com /var/named/named.fanxiang
[root@localhost ~]# vim /var/named/named.fanxiang
$TTL 1D
@ IN SOA @ admin.example.com.(
0
1
1
1
1)
IN NS ns.example.com.
ns IN A 192.168.153.130
www IN A 192.168.163.130
130 IN PTR ns.example.com.
130 IN PTR www.example.com.
4.重启named
bash
[root@localhost ~]# systemctl restart named
5.测试
(1)正向

(2)反向

(2)主从复制
1.主服务器
bash
[root@localhost ~]# vim /etc/named.conf
options {
listen-on port 53 { 192.168.153.130; };
directory "/var/named";
dnssec-validation yes;
};
zone "example.com" IN{
type master;
file "example.com";
};
zone "153.168.192.in-addr.arpa" IN {
type master;
file "named.fanxiang";
};
zone "lisi.com" IN {
type master;
file "lisi.com";
};
[root@localhost ~]# vim /var/named/lisi.com
$TTL 1D
@ IN SOA @ admin@lisi.com. (
0
1
1
1
1)
IN NS ns.lisi.com.
ns IN A 192.168.153.130
www IN A 192.168.153.130
2.从服务器
bash
[root@client ~]# vim /etc/named.conf
options {
listen-on port 53 { 192.168.153.140; };
directory "/var/named";
};
zone "lisi.com" IN {
type slave;
masters {192.168.153.130; };
file "slaves/named.lisi";
};
3.重启named
4.主服务器日志测试结果

2、NGINX Web 服务器配置脚本
1.安装 NGINX
bash
[root@localhost ~]# dnf install nginx -y
注意:在安装nginx之前应该配置好本地仓库
- 创建网站根目录并添加测试页面
bash
[root@localhost ~]# mkdir -p /u01/www/
[root@localhost ~]# echo Welcome to test1 > /u01/www/index.html
[root@localhost ~]# mkdir /var/log/nginx/example/
- 创建 NGINX 配置文件
bash
[root@localhost ~]# vim /etc/nginx/conf.d/example.conf
server{
listen 9093;
server_name www.example.com;
root /u01/www/;
access_log /var/log/nginx/example/access.log;
error_log /var/log/nginx/example/error.log;
}
4.绑定IP与主机名
bash
[root@localhost conf.d]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
# See hosts(5) for proper format and other examples:
# 192.168.1.10 foo.example.org foo
# 192.168.1.13 bar.example.org bar
192.168.153.130 www.example.com
- SELinux 配置(允许 NGINX 访问自定义目录和端口)
bash
[root@localhost ~]# semanage port -a -t http_port_t -p tcp 9093
[root@localhost ~]# semanage fcontext -a -t httpd_sys_content_t "/u01/www(/.*)?"
[root@localhost ~]# restorecon -Rv /u01/www/
Relabeled /u01/www from unconfined_u:object_r:default_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0
Relabeled /u01/www/index.html from unconfined_u:object_r:default_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0
3、防火墙配置脚本
- 启动 firewalld 并设置开机自启
bash
[root@localhost ~]# systemctl start firewalld
[root@localhost ~]# systemctl enable firewalld
- 放行 9093/tcp 端口(允许 Windows 主机访问)
bash
[root@localhost ~]# firewall-cmd --permanent --add-port=9093/tcp
success
[root@localhost ~]# firewall-cmd --reload
success
- 放行 DNS 服务端口(53/tcp、53/udp)
bash
[root@localhost ~]# firewall-cmd --permanent --add-port={53/tcp,53/udp}
success
[root@localhost ~]# firewall-cmd --reload
success
4.重启 NGINX 服务
bash
[root@localhost ~]# systemctl restart nginx
四、实验结果
