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 反代 |
| 2 | Stream 模式 | TCP/UDP 四层转发 |
| 3 | Emby 分离 HTTP 推流 | Emby 专用 HTTP 流媒体方案 |
| 4 | Emby 分离 HTTPS 推流 | Emby 专用 HTTPS 流媒体方案 |
| 5 | LilyEmby 方案三 | 支持 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 配置,能接管吗?
可以。菜单 2 → 4 导入已有配置,脚本会自动扫描并接管。
⭐ 觉得好用的话,记得点个 Star!
👉 Xiuyixx/Nginx-X