【运维实战】Nginx 高性能Web服务 · 一键自动化部署方案 (适配银河麒麟 V10 / openEuler / CentOS 7/8)


国产化服务器下 Nginx 一键自动化部署实战(适配麒麟 V10 / openEuler / 龙蜥 / RockyLinux)

原创:云动课堂

关键词:Nginx、一键部署、国产操作系统、Shell脚本、运维自动化


一、业务背景:国产化替代下的 Nginx 部署难题

随着信创产业的快速推进,越来越多的企业将业务系统迁移至国产操作系统,例如 银河麒麟 V10openEuler龙蜥 Anolis OS 等。在这些系统上部署常见的 Web 服务(如 Nginx),不再像 CentOS 7 那样"yum install"即可万事大吉。

实际运维中,我们面临以下典型场景:

  • 某金融机构要求所有新上线的门户网站必须运行在麒麟 V10 环境,运维团队需在 30 台新交付的服务器上快速部署 Nginx + 反向代理。
  • 某政务云平台同时使用 openEuler龙蜥 8 两种操作系统,部署脚本需要兼容不同包管理器(yum / dnf)和默认仓库差异。
  • 传统手工部署方式不仅耗时,而且容易遗漏防火墙放行、SELinux 配置、开机自启等细节,导致服务"装上了却访问不了"。

核心痛点: 缺乏一套"一次编写,到处运行"的 Nginx 自动化部署方案,能够适配国产操作系统生态,并提供标准化的运维信息输出。


二、需求分析:我们需要一个"开箱即用"的 Nginx 部署工具

通过梳理上述业务场景,我们总结出以下 5 项核心需求:

需求编号 需求描述
R1 多 OS 适配:自动识别银河麒麟 V10、openEuler、龙蜥 8、Rocky Linux 8、CentOS 7/8,并调用正确的包管理器(yum/dnf)
R2 可选官方源:支持用户选择是否使用 Nginx 官方 YUM 源(获取最新稳定版)
R3 环境联动配置:自动配置 firewalld 放行 HTTP 服务;自动调整 SELinux 策略(如果启用)
R4 交付即验证:安装后自动生成一个包含运维信息的测试页面,浏览器访问即可确认部署成功
R5 运维信息沉淀:部署完成后输出完整的服务状态、访问地址、配置文件路径、管理命令,并保存至文件,方便后续维护

简单来说,我们需要一个 "黑盒式"一键脚本 :运维人员只需执行 sudo ./deploy_nginx.sh,其余工作(检测系统、安装、配置、启动、验证)完全自动化。


三、方案设计:打造 Nginx 一键自动化部署脚本

3.1 技术选型

  • 脚本语言:Bash(几乎所有 Linux 发行版内置)
  • 安装方式:优先使用系统包管理器(yum/dnf),支持添加 Nginx 官方源
  • 配置策略:尽量不修改 Nginx 默认配置,仅确保防火墙和 SELinux 兼容
  • 测试页面:内嵌 HTML 代码,动态生成包含服务器 IP、部署时间、关键路径的页面

3.2 脚本执行流程

整个脚本被划分为 6 个逻辑清晰的步骤:
开始
检测操作系统
安装Nginx
配置防火墙+SELinux
创建测试页面
启动服务并设置开机自启
输出运维信息汇总
结束

3.3 关键技术点

  1. OS 识别 :通过 /etc/os-release 获取 IDVERSION_ID,对未知系统自动降级为 CentOS 兼容模式。
  2. 官方源处理 :动态写入 /etc/yum.repos.d/nginx.repo,并导入 GPG 密钥。
  3. 防火墙适配 :优先检测 firewalld 是否运行,若运行则放行 http 服务;否则仅给出提示。
  4. SELinux 兼容 :设置 httpd_can_network_connect 布尔值,并将网页目录上下文标记为 httpd_sys_content_t
  5. 彩色输出与日志 :使用 ANSI 颜色区分 INFO/WARN/ERROR,同时将所有输出追加到 /tmp/nginx_install.log

四、脚本核心预览(完整版见文末)

由于篇幅限制,此处仅展示脚本的核心函数片段,完整脚本请参见文末附录。

4.1 完整的脚本内容

bash 复制代码
#!/bin/bash
# ===================================================================
# 项目名称:Nginx 高性能Web服务 · 一键自动化部署方案
# 适用系统:银河麒麟 V10 / openEuler / 龙蜥 8 / Rocky Linux 8 / CentOS 7/8
# 脚本单位:阜阳云动科技
# 功能描述:自动安装 Nginx,创建测试页面,输出运维信息
# ===================================================================

set -e  # 遇到错误即退出

# ----------------------------- 全局变量 -----------------------------
NGINX_VERSION="1.20.1"       # 默认版本(若从官方源安装则忽略)
NGINX_CONF="/etc/nginx/nginx.conf"
HTML_DIR="/usr/share/nginx/html"
TEST_PAGE="index.html"
SERVICE_NAME="nginx"
LOG_FILE="/tmp/nginx_install.log"
TIME=$(date "+%Y-%m-%d %H:%M:%S")

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[0;34m'
PURPLE='\033[0;35m'
CYAN='\033[0;36m'
NC='\033[0m' # No Color

# ----------------------------- 工具函数 -----------------------------
log_info() {
    echo -e "${GREEN}[INFO]${NC} $(date +'%Y-%m-%d %H:%M:%S') - $1" | tee -a $LOG_FILE
}

log_warn() {
    echo -e "${YELLOW}[WARN]${NC} $(date +'%Y-%m-%d %H:%M:%S') - $1" | tee -a $LOG_FILE
}

log_error() {
    echo -e "${RED}[ERROR]${NC} $(date +'%Y-%m-%d %H:%M:%S') - $1" | tee -a $LOG_FILE
    exit 1
}

print_step() {
    echo -e "\n${BLUE}========== $1 ==========${NC}"
}

print_banner() {
    echo -e "${PURPLE}
    **********************************************
    *       Nginx 一键自动化部署脚本            *
    *           单位:云动课堂                   *
    **********************************************${NC}"
}

# 检测操作系统
detect_os() {
    if [ -f /etc/os-release ]; then
        . /etc/os-release
        OS=$ID
        VER=$VERSION_ID
    else
        log_error "无法检测操作系统版本"
    fi

    case $OS in
        centos|rhel|rocky|anolis|openEuler|kylin)
            log_info "检测到操作系统: $OS $VER"
            ;;
        *)
            log_warn "未经过完全测试的操作系统: $OS,将尝试使用 CentOS 兼容模式"
            OS="centos"
            ;;
    esac
}

# 配置 Nginx 官方源(可选,默认使用系统源)
setup_nginx_repo() {
    if [ -f /etc/yum.repos.d/nginx.repo ]; then
        log_info "Nginx 源已存在,跳过配置"
        return
    fi

    log_info "配置 Nginx 官方 YUM 源..."
    cat > /etc/yum.repos.d/nginx.repo << EOF
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/\$releasever/\$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF
    # 导入 GPG 密钥
    rpm --import https://nginx.org/keys/nginx_signing.key 2>/dev/null || log_warn "GPG 密钥导入失败,将忽略签名验证"
}

# 安装 Nginx
install_nginx() {
    print_step "步骤1:安装 Nginx"

    # 检查是否已安装
    if command -v nginx &> /dev/null; then
        log_warn "Nginx 已安装,跳过安装步骤"
        return
    fi

    # 选择安装方式:优先使用官方源,否则使用默认源
    read -p "是否使用 Nginx 官方源(y/n,默认 y)? " use_official
    use_official=${use_official:-y}
    if [[ "$use_official" =~ ^[Yy]$ ]]; then
        setup_nginx_repo
    fi

    # 安装依赖
    log_info "更新 YUM 缓存并安装必要工具..."
    if command -v dnf &> /dev/null; then
        dnf install -y epel-release 2>/dev/null || true
        dnf makecache
        dnf install -y nginx curl wget
    else
        yum install -y epel-release 2>/dev/null || true
        yum makecache
        yum install -y nginx curl wget
    fi || log_error "Nginx 安装失败"

    # 验证安装
    if command -v nginx &> /dev/null; then
        log_info "Nginx 安装成功,版本:$(nginx -v 2>&1)"
    else
        log_error "Nginx 未找到,安装可能失败"
    fi
}

# 配置防火墙和 SELinux
configure_firewall_selinux() {
    print_step "步骤2:配置防火墙及 SELinux"

    # 防火墙配置
    if command -v firewall-cmd &> /dev/null; then
        if systemctl is-active --quiet firewalld; then
            log_info "firewalld 正在运行,添加 HTTP 服务..."
            firewall-cmd --permanent --add-service=http
            firewall-cmd --reload
            log_info "防火墙已允许 HTTP (80端口)"
        else
            log_warn "firewalld 未运行,跳过防火墙配置"
        fi
    elif command -v iptables &> /dev/null; then
        log_warn "未检测到 firewalld,请手动配置 iptables 开放 80 端口"
    fi

    # SELinux 配置:设置 httpd 相关布尔值(仅当 SELinux 启用时)
    if command -v getenforce &> /dev/null && [ "$(getenforce)" != "Disabled" ]; then
        log_info "配置 SELinux 策略..."
        setsebool -P httpd_can_network_connect on 2>/dev/null || true
        chcon -R -t httpd_sys_content_t $HTML_DIR 2>/dev/null || true
        log_info "SELinux 已适配 Nginx"
    fi
}

# 创建测试页面
create_test_page() {
    print_step "步骤3:创建测试 HTML 页面"

    local host_ip=$(ip route get 1 | awk '{print $NF;exit}' 2>/dev/null || echo "127.0.0.1")
    cat > ${HTML_DIR}/${TEST_PAGE} << EOF
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>云动课堂 - Nginx 部署成功</title>
    <style>
        body { font-family: 'Microsoft YaHei', sans-serif; text-align: center; margin-top: 15%; background: #f0f2f5; }
        .container { background: white; padding: 40px; border-radius: 10px; display: inline-block; box-shadow: 0 0 15px rgba(0,0,0,0.1); }
        h1 { color: #009688; }
        .info { text-align: left; margin-top: 20px; background: #f9f9f9; padding: 15px; border-radius: 5px; }
        .footer { margin-top: 30px; font-size: 12px; color: #999; }
    </style>
</head>
<body>
    <div class="container">
        <h1>✅ Nginx 已成功部署</h1>
        <p>恭喜!Nginx Web 服务器运行正常。</p>
        <div class="info">
            <strong>📌 运维信息:</strong><br>
            部署时间:${TIME}<br>
            服务器 IP:${host_ip}<br>
            配置文件:${NGINX_CONF}<br>
            网站根目录:${HTML_DIR}<br>
            日志目录:/var/log/nginx/<br>
            服务管理:systemctl {start|stop|restart|status} nginx<br>
        </div>
        <div class="footer">
            脚本制作单位:云动课堂 | 一键自动化部署
        </div>
    </div>
</body>
</html>
EOF

    log_info "测试页面已创建:${HTML_DIR}/${TEST_PAGE}"
}

# 启动并启用 Nginx 服务
start_nginx() {
    print_step "步骤4:启动 Nginx 服务"

    # 检查配置文件语法
    nginx -t || log_error "Nginx 配置文件语法错误"

    systemctl enable ${SERVICE_NAME} 2>/dev/null || log_warn "设置开机自启失败"
    systemctl restart ${SERVICE_NAME} || log_error "Nginx 启动失败"

    if systemctl is-active --quiet ${SERVICE_NAME}; then
        log_info "Nginx 服务已成功启动并设为开机自启"
    else
        log_error "Nginx 服务未正常运行"
    fi
}

# 输出运维信息汇总
output_summary() {
    print_step "部署完成 - 运维信息汇总"

    local ip_addr=$(ip route get 1 | awk '{print $NF;exit}' 2>/dev/null)
    local public_ip=$(curl -s ifconfig.me 2>/dev/null || echo "无法获取")
    local nginx_version=$(nginx -v 2>&1 | cut -d'/' -f2)

    echo -e "${GREEN}
    ╔══════════════════════════════════════════════════════════════╗
    ║                    Nginx 部署成功信息                        ║
    ╠══════════════════════════════════════════════════════════════╣
    ║ 服务状态      :$(systemctl is-active nginx)                                          
    ║ 版本          :$nginx_version
    ║ 访问地址      :http://${ip_addr}   (内网)
    ║               :http://${public_ip} (公网,若有)
    ║ 配置文件      :$NGINX_CONF
    ║ 网站根目录    :$HTML_DIR
    ║ 测试页面      :${HTML_DIR}/${TEST_PAGE}
    ║ 访问日志      :/var/log/nginx/access.log
    ║ 错误日志      :/var/log/nginx/error.log
    ║ 服务管理命令  :systemctl start/stop/restart nginx
    ║ 日志查看命令  :tail -f /var/log/nginx/access.log
    ║ 部署时间      :${TIME}
    ║ 脚本单位      :云动课堂
    ╚══════════════════════════════════════════════════════════════╝
    ${NC}"

    # 保存信息到文件
    cat > /root/nginx_deploy_info.txt << EOF
Nginx 部署信息(生成时间:${TIME})
-----------------------------------
服务状态:$(systemctl is-active nginx)
版本:${nginx_version}
内网访问:http://${ip_addr}
配置文件:${NGINX_CONF}
根目录:${HTML_DIR}
日志:/var/log/nginx/
管理命令:systemctl start/stop/restart nginx
EOF
    log_info "运维信息已保存至 /root/nginx_deploy_info.txt"
}

# 主函数
main() {
    # 必须以 root 身份运行
    if [ "$EUID" -ne 0 ]; then
        log_error "请使用 root 用户或 sudo 执行此脚本"
    fi

    print_banner
    detect_os
    install_nginx
    configure_firewall_selinux
    create_test_page
    start_nginx
    output_summary

    echo -e "\n${GREEN}✨ Nginx 一键部署完成!通过浏览器访问服务器 IP 即可看到测试页面。${NC}"
}

# 执行主函数
main

4.2 安装与防火墙联动

bash 复制代码
install_nginx() {
    # 询问是否使用官方源
    read -p "是否使用 Nginx 官方源(y/n,默认 y)? " use_official
    if [[ "$use_official" =~ ^[Yy]$ ]]; then
        setup_nginx_repo
    fi
    # 使用 dnf 或 yum 安装
    if command -v dnf &> /dev/null; then
        dnf install -y nginx
    else
        yum install -y nginx
    fi
}

configure_firewall_selinux() {
    # firewalld 放行 http
    if systemctl is-active --quiet firewalld; then
        firewall-cmd --permanent --add-service=http
        firewall-cmd --reload
    fi
    # SELinux 调整
    if [ "$(getenforce)" != "Disabled" ]; then
        setsebool -P httpd_can_network_connect on
        chcon -R -t httpd_sys_content_t /usr/share/nginx/html
    fi
}

4.3 自动生成运维测试页面

脚本会动态生成一个包含 部署时间服务器 IP配置文件路径日志目录 等信息的 HTML 文件,存放在网站根目录下。用户访问 http://服务器IP 即可看到。


五、部署效果演示(成功输出摘要)

在一台 龙蜥 8 服务器上执行脚本后,终端输出如下(已脱敏):

bash 复制代码
[root@localhost ~]# ./install_nginx.sh

    **********************************************
    *       Nginx 一键自动化部署脚本            *
    *           单位:云动课堂                   *
    **********************************************
[INFO] 2026-04-28 01:31:20 - 检测到操作系统: anolis 8.10

========== 步骤1:安装 Nginx ==========
是否使用 Nginx 官方源(y/n,默认 y)? y
[INFO] 2026-04-28 01:31:26 - 配置 Nginx 官方 YUM 源...
[INFO] 2026-04-28 01:31:27 - 更新 YUM 缓存并安装必要工具...
nginx stable repo                                                                                                                                  47 kB/s | 111 kB     00:02
依赖关系解决。
==================================================================================================================================================================================
 软件包                                        架构                                    版本                                         仓库                                     大小
==================================================================================================================================================================================
安装:
 epel-release                                  noarch                                  8-11.an8                                     Extras                                   23 k

事务概要
==================================================================================================================================================================================
安装  1 软件包

总下载:23 k
安装大小:35 k
下载软件包:
epel-release-8-11.an8.noarch.rpm                                                                                                                  132 kB/s |  23 kB     00:00
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
总计                                                                                                                                              130 kB/s |  23 kB     00:00
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
  准备中  :                                                                                                                                                                   1/1
  安装    : epel-release-8-11.an8.noarch                                                                                                                                      1/1
  运行脚本: epel-release-8-11.an8.noarch                                                                                                                                      1/1
  验证    : epel-release-8-11.an8.noarch                                                                                                                                      1/1

已安装:
  epel-release-8-11.an8.noarch

完毕!
AnolisOS-8 - AppStream                                                                                                                             45 kB/s | 4.3 kB     00:00
AnolisOS-8 - BaseOS                                                                                                                                52 kB/s | 4.3 kB     00:00
AnolisOS-8 - Extras                                                                                                                                40 kB/s | 3.0 kB     00:00
AnolisOS-8 - PowerTools                                                                                                                            56 kB/s | 4.3 kB     00:00
AnolisOS-8 - Kernel 5.10                                                                                                                           41 kB/s | 4.3 kB     00:00
Extra Packages for Enterprise Linux 8 - x86_64                                                                                                    9.5 MB/s |  14 MB     00:01
Extra Packages for Enterprise Linux Modular 8 - x86_64                                                                                             20 kB/s | 733 kB     00:36
nginx stable repo                                                                                                                                 7.8 kB/s | 3.0 kB     00:00
元数据缓存已建立。
上次元数据过期检查:0:00:05 前,执行于 2026年04月28日 星期二 01时32分23秒。
软件包 curl-7.61.1-35.0.2.an8.3.x86_64 已安装。
软件包 wget-1.19.5-12.0.1.an8.x86_64 已安装。
依赖关系解决。
==================================================================================================================================================================================
 软件包                                架构                                 版本                                                 仓库                                        大小
==================================================================================================================================================================================
安装:
 nginx                                 x86_64                               1:1.30.0-1.el8.ngx                                   nginx-stable                               1.0 M
升级:
 curl                                  x86_64                               7.61.1-35.0.2.an8.9                                  BaseOS                                     222 k
 libcurl                               x86_64                               7.61.1-35.0.2.an8.9                                  BaseOS                                     303 k

事务概要
==================================================================================================================================================================================
安装  1 软件包
升级  2 软件包

总下载:1.5 M
下载软件包:
(1/3): libcurl-7.61.1-35.0.2.an8.9.x86_64.rpm                                                                                                     1.1 MB/s | 303 kB     00:00
(2/3): curl-7.61.1-35.0.2.an8.9.x86_64.rpm                                                                                                        796 kB/s | 222 kB     00:00
(3/3): nginx-1.30.0-1.el8.ngx.x86_64.rpm                                                                                                           13 kB/s | 1.0 MB     01:17
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
总计                                                                                                                                               20 kB/s | 1.5 MB     01:17
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
  准备中  :                                                                                                                                                                   1/1
  升级    : libcurl-7.61.1-35.0.2.an8.9.x86_64                                                                                                                                1/5
  升级    : curl-7.61.1-35.0.2.an8.9.x86_64                                                                                                                                   2/5
  运行脚本: nginx-1:1.30.0-1.el8.ngx.x86_64                                                                                                                                   3/5
  安装    : nginx-1:1.30.0-1.el8.ngx.x86_64                                                                                                                                   3/5
  运行脚本: nginx-1:1.30.0-1.el8.ngx.x86_64                                                                                                                                   3/5
----------------------------------------------------------------------

Thanks for using nginx!

Please find the official documentation for nginx here:
* https://nginx.org/en/docs/

Please subscribe to nginx-announce mailing list to get
the most important news about nginx:
* https://nginx.org/en/support.html

Commercial subscriptions for nginx are available on:
* https://nginx.com/products/

----------------------------------------------------------------------

  清理    : curl-7.61.1-35.0.2.an8.3.x86_64                                                                                                                                   4/5
  清理    : libcurl-7.61.1-35.0.2.an8.3.x86_64                                                                                                                                5/5
  运行脚本: libcurl-7.61.1-35.0.2.an8.3.x86_64                                                                                                                                5/5
  验证    : nginx-1:1.30.0-1.el8.ngx.x86_64                                                                                                                                   1/5
  验证    : curl-7.61.1-35.0.2.an8.9.x86_64                                                                                                                                   2/5
  验证    : curl-7.61.1-35.0.2.an8.3.x86_64                                                                                                                                   3/5
  验证    : libcurl-7.61.1-35.0.2.an8.9.x86_64                                                                                                                                4/5
  验证    : libcurl-7.61.1-35.0.2.an8.3.x86_64                                                                                                                                5/5

已升级:
  curl-7.61.1-35.0.2.an8.9.x86_64                                                        libcurl-7.61.1-35.0.2.an8.9.x86_64
已安装:
  nginx-1:1.30.0-1.el8.ngx.x86_64

完毕!
[INFO] 2026-04-28 01:33:49 - Nginx 安装成功,版本:nginx version: nginx/1.30.0

========== 步骤2:配置防火墙及 SELinux ==========
[WARN] 2026-04-28 01:33:49 - firewalld 未运行,跳过防火墙配置

========== 步骤3:创建测试 HTML 页面 ==========
[INFO] 2026-04-28 01:33:49 - 测试页面已创建:/usr/share/nginx/html/index.html

========== 步骤4:启动 Nginx 服务 ==========
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[INFO] 2026-04-28 01:33:50 - Nginx 服务已成功启动并设为开机自启

========== 部署完成 - 运维信息汇总 ==========

    ╔══════════════════════════════════════════════════════════════╗
    ║                    Nginx 部署成功信息                        ║
    ╠══════════════════════════════════════════════════════════════╣
    ║ 服务状态      :active
    ║ 版本          :1.30.0
    ║ 访问地址      :http://0   (内网)
    ║               :http://36.6.234.128 (公网,若有)
    ║ 配置文件      :/etc/nginx/nginx.conf
    ║ 网站根目录    :/usr/share/nginx/html
    ║ 测试页面      :/usr/share/nginx/html/index.html
    ║ 访问日志      :/var/log/nginx/access.log
    ║ 错误日志      :/var/log/nginx/error.log
    ║ 服务管理命令  :systemctl start/stop/restart nginx
    ║ 日志查看命令  :tail -f /var/log/nginx/access.log
    ║ 部署时间      :2026-04-28 01:31:20
    ║ 脚本单位      :云动课堂
    ╚══════════════════════════════════════════════════════════════╝

[INFO] 2026-04-28 01:33:52 - 运维信息已保存至 /root/nginx_deploy_info.txt

✨ Nginx 一键部署完成!通过浏览器访问服务器 IP 即可看到测试页面。


✨ Nginx 一键部署完成!通过浏览器访问服务器 IP 即可看到测试页面。


随后浏览器访问 http://192.168.50.31,显示如下页面(含运维信息卡片)。

效果图摘要:页面背景浅灰,中央白色卡片显示"✅ Nginx 已成功部署",并列出部署时间、IP、配置文件、日志路径等,底部标注"脚本制作单位:云动课堂"。


六、后期维护建议

脚本虽然实现了一键部署,但生产环境仍需注意以下运维要点:

  1. 定期更新 Nginx 版本

    • 执行 yum update nginx (或 dnf update nginx) 可升级到官方源的最新稳定版。
    • 升级后建议执行 nginx -tsystemctl restart nginx
  2. 配置文件自定义

    • 脚本未改动 nginx.conf,如需新增虚拟主机(server block),请将自定义配置放入 /etc/nginx/conf.d/ 目录。
    • 修改配置后务必执行 nginx -t 检查语法。
  3. 日志轮转与监控

    • Nginx 默认日志位于 /var/log/nginx/。建议配置 logrotate(系统已自带)并确保日志不占满磁盘。
    • 可接入 Zabbix 或 Prometheus 监控 nginx_status 模块(需手动启用 stub_status)。
  4. 安全加固

    • 隐藏版本号:在 nginx.confhttp 块中添加 server_tokens off;
    • 根据业务需要配置 HTTPS(使用 Let's Encrypt 或企业证书)。
    • 限制请求方法、禁用不安全的 HTTP 方法。
  5. 备份策略

    • 至少备份 /etc/nginx/ 整个目录和网站根目录。
    • 脚本生成的 /root/nginx_deploy_info.txt 文件可保留作为初始配置快照。

附录:完整脚本代码

由于博客篇幅限制,完整脚本已上传至 [GitHub Gist / 云动课堂代码库],也可直接联系作者获取。

核心特性回顾:

  • ✅ 适配麒麟 V10、openEuler、龙蜥 8、Rocky 8、CentOS 7/8
  • ✅ 一键安装 + 防火墙 + SELinux + 测试页面
  • ✅ 运维信息彩色汇总并保存至文件
  • ✅ 幂等性设计(重复执行不会破坏已有配置)

写在最后:国产操作系统生态正在快速成熟,运维工具的"跨平台兼容性"将成为刚需。希望这份 Nginx 一键部署方案能帮助大家节省时间,也希望更多开源爱好者一起贡献适配不同发行版的自动化脚本。

单位:云动课堂

技术交流:欢迎留言讨论,或访问我们的官网获取更多运维实战课程。


(完)

相关推荐
KnowSafe2 小时前
证书自动化解决方案哪家更可靠?
运维·服务器·安全·https·自动化·ssl
hsjcjh2 小时前
2026实测:Gemini 3.1镜像站函数调用如何实现自动化运维工单?国内免费镜像教程
运维·自动化
日取其半万世不竭2 小时前
用云服务器搭建 Nextcloud,告别网盘限速和隐私泄露
运维·服务器
大前端helloworld2 小时前
AI全自动实现Flutter蓝牙自动连接
前端
KnowSafe3 小时前
2026年证书自动化解决方案选型指南
运维·安全·自动化·ssl·itrustssl
GISer_Jing3 小时前
从入门到落地:前端开发者的AI Agent全栈学习路线
前端·人工智能·ai编程
ZGi.ai3 小时前
企业Agent编排实战:条件分支+并行执行+异常处理全覆盖
运维
计算机安禾3 小时前
【Linux从入门到精通】第47篇:SystemTap与eBPF——Linux内核观测的显微镜
java·linux·前端
wanhengidc3 小时前
可持续性 云手机运行
运维·服务器·网络·安全·智能手机