一键部署nginx脚本需先识别系统类型、检查服务状态与端口占用,再分发适配源安装、验证配置、备份并替换为安全精简配置,全程记录日志、避免root直行、确保可读容错可复用。

Linux 编写一键部署 Nginx 的脚本,核心是把安装、配置、启动、开机自启这些步骤自动化,同时兼顾可读性、容错性和可复用性。不推荐直接用 root 运行复杂命令,而应分步判断、提示、记录日志。
确认系统环境并预检查
脚本开头先识别发行版(CentOS/RHEL 或 Ubuntu/Debian),再检查是否已安装 Nginx 或端口占用情况,避免强行覆盖或启动失败:
- 用 grep -q 'centos\|red hat\|rocky' /etc/os-release 或 lsb_release -is 判断系统类型
- 运行 systemctl is-active nginx &>/dev/null 检查服务状态;用 lsof -i :80 | grep LISTEN 看 80 端口是否被占
- 建议提前创建日志目录(如 /var/log/nginx-deploy)并重定向每步输出,方便排错
自动安装 Nginx(适配主流源)
不同系统安装方式不同,脚本需分支处理,优先使用官方源而非 EPEL 或第三方 PPA:
- CentOS 7/8/Stream:启用 nginx:stable 官方仓库(dnf install -y dnf-utils → dnf config-manager --set-enabled crb → 添加 nginx.repo)
- Ubuntu 20.04+:导入官方 GPG 密钥 + 添加 https://nginx.org/packages/mainline/ubuntu/ 源,再 apt update && apt install -y nginx
- 安装后立即执行 nginx -t 验证配置语法,失败则退出并提示错误位置
覆盖默认配置并启用静态站点
把默认 /etc/nginx/nginx.conf 备份后替换为精简安全的版本,并部署一个带健康检查页的 HTML:
- 用 cat > /etc/nginx/nginx.conf 写入最小化主配置(关闭 server_tokens,限制 worker 进程数,启用 gzip)
- 在 /usr/share/nginx/html/ 下生成 index.html 和 healthz 接口文件(仅含 ok 文本)
- 确保 nginx -s reload 前先 chown -R root:root /etc/nginx 和 chmod 644 /etc/nginx/nginx.conf
设置开机自启并验证可用性
安装完成后必须让服务随系统启动,并提供快速验证方式:
- systemctl enable nginx 启用自启,systemctl start nginx 启动服务
- 用 curl -sI http://127.0.0.1 | head -1 检查返回是否为 HTTP/1.1 200 OK
- 输出成功提示,包括访问地址(http://$(hostname -I | awk '{print $1}'))和常用命令(如 journalctl -u nginx -n 20)
不复杂但容易忽略细节,比如权限、SELinux(CentOS)、防火墙放行(ufw/firewalld)、以及配置文件换行符格式(Windows 编辑后可能出错)。写完用 bash -n script.sh 先语法校验,再在干净虚拟机中测试全流程。











