Nginx-X 快速上手教程

Nginx-X 快速上手教程

 次点击
21 分钟阅读

Nginx-X 快速上手教程

一个基于 Bash 的 Nginx 自动化管理交互脚本,支持 Ubuntu / Debian / CentOS

如果觉得好用,欢迎给项目点个 Star!
👉 Xiuyixx/Nginx-X


1. 安装

一键安装(推荐)

bash -c "$(curl -fsSL https://raw.githubusercontent.com/Xiuyixx/Nginx-X/main/install.sh)"

手动安装

git clone https://github.com/Xiuyixx/Nginx-X.git
cd Nginx-X
bash install.sh

💡 安装完成后,在终端输入 nx 即可启动。一键安装首次会克隆到 /opt/Nginx-X,再次执行会自动拉取最新代码。


2. 主菜单概览

运行 nx 后看到的主菜单:

1) 安装 & 升级 Nginx
2) 配置管理
3) 证书管理
4) 实时信息
5) 卸载
0) 退出

交互提示: 输入数字编号选择,输入 0 返回上一级或退出。颜色含义:🟢 绿色 = 成功 🟡 黄色 = 警告 🔴 红色 = 错误


3. 安装 & 升级 Nginx

选择菜单 1

首次安装

系统自动完成:

  • 检测并安装依赖(curl、wget、socat、cron)
  • 添加 nginx.org 官方源
  • 安装 Nginx stable 版本
  • 自动停用 default.conf(改名为 default.conf.bak,避免与自定义配置冲突)
  • 创建证书目录 /etc/nginx/ssl/

升级 Nginx

  • 自动对比本地版本与官网最新版本(若 nginx.org 不可达,会回退为包管理器升级检查)
  • 有新版本时先备份 /etc/nginx/ 再升级
  • 升级后自动校验并平滑重载

4. 配置管理

进入菜单 2

1) 添加配置
2) 外部反代
3) 配置列表
4) 导入已有配置

4.1 添加配置

将本机 Nginx 作为反向代理,指向本机后端服务。

示例:将 example.com 的 80 端口请求转发到本机 8080 端口

输入域名: example.com
输入监听端口: 80
输入后端端口: 8080

⚠️ 如果目标端口已被占用,系统会提示端口复用确认。

4.2 外部反代

将请求代理到外部 URL(第三方服务、其他服务器等)。

支持的模式:

编号模式说明
1标准模式普通 HTTP/HTTPS 反代
2Stream 模式TCP/UDP 四层转发
3Emby 分离 HTTP 推流Emby 专用 HTTP 流媒体方案
4Emby 分离 HTTPS 推流Emby 专用 HTTPS 流媒体方案
5LilyEmby 方案三支持 sub_filter 响应体替换

💡 Emby/LilyEmby 模式支持配置主站上游、推流节点 URL、源站公开 URL、Referer URL。如果选择 HTTPS 监听但没有证书,系统会自动引导你申请。

4.3 配置列表

统一管理所有配置,按状态浏览并进入三级菜单操作:

操作说明
启用快速开启配置
停用快速关闭配置
修改切换外部反代方案、重新关联证书
编辑直接编辑 Nginx 配置文件
删除删除配置(需二次确认)

💡 若修改配置时更换了域名且发现没有证书,可直接在流程中申请证书并重新启用 HTTPS。

4.4 导入已有配置

自动扫描服务器上已有的 Nginx 配置,交给 Nginx-X 统一管理。

脚本会自动扫描以下目录:

  • /etc/nginx/conf.d/
  • /etc/nginx/sites-enabled/
  • /etc/nginx/sites-available/

发现未纳管的配置后,逐个确认是否导入。

导入安全可靠:

  • 自动提取域名、端口、后端地址、HTTPS 状态等元数据
  • 不修改原有 Nginx 指令,保持配置原样
  • sites-available 的配置会自动复制到 conf.d/,并清理 sites-enabled 中的重复软链接
  • 已停用的配置不会重复导入(按域名+端口去重,含 .bak 文件)

迁移友好: 首次安装 Nginx 后,脚本会自动检测并提示是否导入已有配置,无需手动重新配置。


5. 证书管理(HTTPS)

进入菜单 3

5.1 申请证书

系统使用 acme.sh 通过 HTTP-01 验证自动申请 Let's Encrypt 证书。

流程: ① 设置邮箱(用于证书到期提醒) → ② 系统自动安装 acme.sh → ③ 自动执行 HTTP-01 自检(验证 80 端口、域名解析、challenge 路径、域名回源) → ④ 申请成功,证书保存在 /etc/nginx/ssl/

⚠️ 前提条件: 域名已正确解析到服务器 IP,80 端口对外开放。

5.2 一键启用 HTTPS

当前状态操作
已有证书直接启用 HTTPS
无证书自动申请 + 启用 HTTPS(80 自动跳转到 443)

5.3 证书续期管理

  • 重新申请 — 证书即将过期时手动重新签发
  • 启停续期 — 临时禁用/恢复自动续期
  • 删除证书 — 移除指定证书

6. 实时信息 & 健康检查

进入菜单 4

1) 实时信息
2) 流量统计
3) 健康检查
功能说明
实时信息连接状态、QPS、系统资源、网络流量
流量统计系统总流量 + 各配置流量估算
健康检查检查所有站点或单个站点的可用性

健康检查详情

检查内容包括:✅ 入口 URL 可达性 ✅ HTTP 状态码 ✅ DNS 解析结果 ✅ 命中 IP 🔒 HTTPS 站点额外显示证书剩余天数

📌 外部反代会额外显示主上游与推流上游,便于排查。界面每 5 秒自动刷新,按回车返回上一级。


7. 卸载

进入菜单 5

选项说明
1仅卸载脚本(保留 Nginx)
2卸载 Nginx(含所有配置)
3卸载 Acme(证书 & 邮箱信息)
4全部卸载(脚本 + Nginx + Acme)

⚠️ 高风险操作会显示删除摘要并要求二次确认


8. 进阶:让流量统计更准确

Nginx-X 默认从 access.log 估算流量。配置 Host 专用日志后,统计会按域名精确拆分。

编辑 /etc/nginx/nginx.conf,在 http 块中添加:

log_format nginxx_host '$host $body_bytes_sent $remote_addr [$time_local] '
                       '"$request" $status $http_referer "$http_user_agent"';

access_log /var/log/nginx/access.host.log nginxx_host;

然后重载 Nginx:

nginx -s reload

9. 稳定性设计

Nginx-X 在各个环节都有稳定性保障:

  • 所有配置变更先执行 nginx -t 校验,失败自动回滚,不会把在线服务改挂
  • 443 / HTTPS 端口复用场景走更安全的落地流程
  • 证书申请前做 HTTP-01 自检,区分"软失败可继续"和"硬失败建议先修复"
  • 临时文件使用安全随机文件名,降低冲突和误覆盖风险
  • 卸载 Nginx 后清理 nginx hashed path,避免残留导致重装失败
  • 菜单流程在 nginx 未安装时也能正常响应,不会直接退出

10. 常见问题

Q: 证书申请失败怎么办?

检查:域名是否解析正确、80 端口是否开放、防火墙是否放行。

Q: 如何更新到最新版本?

重新运行安装命令即可自动更新:

bash -c "$(curl -fsSL https://raw.githubusercontent.com/Xiuyixx/Nginx-X/main/install.sh)"

Q: 配置文件保存在哪里?

/etc/nginx/conf.d/,命名为 域名-监听端口.conf

Q: 支持通配符证书吗?

当前版本仅支持 HTTP-01 验证,暂不支持 DNS API 签发通配符证书。

Q: 服务器已有手写 Nginx 配置,能接管吗?

可以。菜单 24 导入已有配置,脚本会自动扫描并接管。


觉得好用的话,记得点个 Star!
👉 Xiuyixx/Nginx-X

© 本文著作权归作者所有,未经许可不得转载使用。