RHCE--基于Nginx的Web服务器配置

一、实验目的

配置一个基于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之前应该配置好本地仓库

  1. 创建网站根目录并添加测试页面
bash 复制代码
[root@localhost ~]# mkdir -p /u01/www/
[root@localhost ~]# echo Welcome to test1 > /u01/www/index.html
[root@localhost ~]# mkdir /var/log/nginx/example/
  1. 创建 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
  1. 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、防火墙配置脚本

  1. 启动 firewalld 并设置开机自启
bash 复制代码
[root@localhost ~]# systemctl start firewalld
[root@localhost ~]# systemctl enable firewalld
  1. 放行 9093/tcp 端口(允许 Windows 主机访问)
bash 复制代码
[root@localhost ~]# firewall-cmd --permanent --add-port=9093/tcp
success
[root@localhost ~]# firewall-cmd --reload
success
  1. 放行 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

四、实验结果

相关推荐
生活很暖很治愈2 小时前
Linux基础开发工具
linux·服务器·git·vim
打工的小王3 小时前
docker(三)具体项目的部署
运维·docker·容器
步步为营DotNet5 小时前
深度剖析.NET中IHostedService:后台服务管理的关键组件
服务器·网络·.net
一叶星殇5 小时前
.NET WebAPI:用 Nginx 还是 IIS 更好
运维·nginx·.net
Ghost Face...7 小时前
i386 CPU页式存储管理深度解析
java·linux·服务器
LEEE@FPGA7 小时前
zynq 是不是有了设备树,再linux中不需要编写驱动也能控制
linux·运维·单片机
Trank-Lw7 小时前
Docker Devcontainer 管理命令
运维·docker·容器
RisunJan7 小时前
Linux命令-less(分页查看器)
linux·运维
赛希咨询7 小时前
人工智能自动化如何提高研究生产力
运维·人工智能·自动化