📖 什么是 Nginx UI?
Nginx UI 是一个开源的 Web 图形化管理工具,旨在彻底改变你管理 Nginx 的方式。它能够让你在浏览器中轻松完成:
- 管理网站/虚拟主机:添加、删除、修改站点配置
- 配置反向代理:图形化设置负载均衡、缓存规则
- HTTPS 证书管理:一键申请和自动续期 Let's Encrypt 证书
- 实时监控:查看 CPU、内存、网络等服务器运行指标
- 配置管理:在线编辑、语法高亮、版本回滚
- 日志查看:直接在网页上查看访问日志和错误日志
- 官方网:https://nginxui.com/zh_CN/
- docker hub: https://hub.docker.com/r/uozi/nginx-ui
🐳 Docker 部署方案(推荐)
方案一:快速部署(一条命令搞定)
这是最快速的启动方式,适合测试或快速体验:
bash
docker run -dit \
--name=nginx-ui \
--restart=always \
-e TZ=Asia/Shanghai \
-v /opt/nginx/data/nginx:/etc/nginx \
-v /opt/nginx/data/nginx-ui:/etc/nginx-ui \
-v /opt/nginx/data/www:/var/www \
-v /var/run/docker.sock:/var/run/docker.sock \
-p 8080:80 -p 8443:443 \
uozi/nginx-ui:latest
参数详细说明
| 参数 | 作用 | 说明 |
|---|---|---|
-d |
后台运行 | 容器在后台持续运行 |
-it |
交互模式 | 保证容器正常运行 |
--name=nginx-ui |
容器命名 | 后续可通过 docker stop/start nginx-ui 管理 |
--restart=always |
自动重启 | 容器退出或服务器重启时自动拉起 |
-e TZ=Asia/Shanghai |
时区设置 | 设置为中国时区,确保日志时间正确 |
-v /opt/nginx/data/nginx:/etc/nginx |
Nginx 配置持久化 | 将容器内的 Nginx 配置文件映射到宿主机,不会因容器删除而丢失 |
-v /opt/nginx/data/nginx-ui:/etc/nginx-ui |
UI 配置持久化 | 保存 Nginx UI 自身的配置、数据库和证书信息 |
-v /opt/nginx/data/www:/var/www |
网站文件持久化(可选) | 存放静态网站文件 |
-v /var/run/docker.sock:/var/run/docker.sock |
Docker Socket 映射 | 让容器能与宿主机 Docker 守护进程通信(高级功能) |
-p 8080:80 |
端口映射 | 将容器的 80 端口映射到宿主机的 8080 端口,通过 http://IP:8080 访问 |
-p 8443:443 |
HTTPS 端口映射 | 将容器的 443 端口映射到宿主机的 8443 端口,用于 HTTPS 访问 |
uozi/nginx-ui:latest |
镜像名称 | 官方 Nginx UI Docker 镜像 |
启动后,访问 http://你的服务器IP:8080 即可开始使用 。
方案二:Docker Compose 部署(生产推荐)
这种方式更规范,便于管理和迁移。创建 docker-compose.yml 文件:
yaml
version: '3.8'
services:
nginx-ui:
image: uozi/nginx-ui:latest
container_name: nginx-ui
restart: always
environment:
- TZ=Asia/Shanghai
volumes:
- /opt/nginx/data/nginx:/etc/nginx
- /opt/nginx/data/nginx-ui:/etc/nginx-ui
- /opt/nginx/data/www:/var/www
- /var/run/docker.sock:/var/run/docker.sock
ports:
- "80:80"
- "443:443"
networks:
- nginx-ui-net
networks:
nginx-ui-net:
driver: bridge
启动命令:
bash
docker-compose up -d
停止命令:
bash
docker-compose down
对比说明:方案二将端口映射为标准的 80 和 443,这样访问时不需要输入端口号,更适合生产环境 。
⚠️ 重要提醒:两种部署方式的区别
Docker 部署的 Nginx UI 是独立运行的 Nginx 实例,它不能直接管理你在宿主机上已安装的 Nginx 服务 。
- Docker 方式:适合全新部署,或希望将 Nginx 服务也容器化的场景
- 宿主机方式:如果你需要管理现有的宿主机 Nginx,请使用「安装脚本」方式
安装脚本快速命令 :
bash
curl -O https://cloud.nginxui.com/install.sh
sudo bash install.sh install
🎯 首次启动与初始化
1. 获取安装密钥(重要)
容器首次启动后,安装密钥存储在映射的配置目录中 :
bash
# 查看安装密钥
cat /opt/nginx/data/nginx-ui/.install_secret
2. 访问 Web 界面
打开浏览器访问:http://你的服务器IP:8080
你会看到初始化页面,需要输入刚才获取的安装密钥。设置管理员用户名和密码后即可登录 。
3. 首次登录后的设置
登录后,你会看到仪表盘,展示服务器的实时状态:CPU 使用率、内存占用、磁盘使用情况和网络流量 。
🛠️ 核心功能使用指南
1. 📊 仪表盘监控
登录后的首页显示服务器的关键性能指标 :
- CPU、内存、磁盘使用率
- 系统负载和网络流量
- Nginx 连接数统计
2. 🌐 管理站点(虚拟主机)
添加新站点的步骤 :
- 进入「站点管理 」→「添加站点」
- 填写域名(如
example.com) - 配置根目录(如
/var/www/example.com) - 设置端口(默认 80/443)
- 点击保存,系统会自动生成配置文件
3. 🔄 配置反向代理
- 进入「站点管理 」→选择域名→「编辑」
- 切换到「位置」选项卡
- 点击「添加 」,设置路径(如
/api) - 填写代理目标地址(如
http://localhost:3000) - 保存后自动生效
命令参数说明:这是图形化界面操作,无需记忆命令行参数,表单填写即可。
4. 🔐 一键申请 HTTPS 证书
Nginx UI 内置了 Let's Encrypt 支持,可以一键申请和自动续期 SSL 证书 :
- 进入「证书管理 」→「申请证书」
- 输入域名(必须已解析到服务器 IP)
- 选择验证方式(HTTP 验证或 DNS 验证)
- 点击「申请」,系统自动完成
- 证书会自动关联到对应站点,并提前 30 天自动续期
5. 📝 在线编辑配置文件
- 进入「配置管理」→选择配置文件
- 编辑器支持语法高亮 和自动补全
- 保存时会自动进行语法检查,错误配置会被拦截,不会导致 Nginx 崩溃
- 每修改一次配置,系统都会保留历史版本,可以随时回滚
6. 📜 查看日志
- 进入「日志管理 」→选择「访问日志 」或「错误日志」
- 直接在网页上查看,支持按关键字搜索
- 无需登录服务器执行
tail -f命令
7. 🤖 AI 智能助手
Nginx UI 集成了大语言模型支持,遇到不懂的配置项可以直接在界面上询问,获得智能提示和解释 。
🔧 进阶配置
配置 Nginx 反向代理访问 UI(新增 HTTPS 支持)
如果你的服务器已经有 Nginx 在运行 80/443 端口,可以配置反向代理来访问 Nginx UI :
nginx
server {
listen 80;
server_name nginx-ui.yourdomain.com;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:8080;
}
}
配置完成后,使用 Certbot 添加 HTTPS:
bash
sudo certbot --nginx -d nginx-ui.yourdomain.com
安全建议
- 启用双因素认证:在用户设置中开启,增强账号安全
- 限制访问 IP:如果只有特定 IP 需要访问,可在 Nginx 层面添加 IP 白名单
- 修改默认端口:不要使用默认的 8080 端口,改为其他高位端口
- 定期备份配置 :备份
/opt/nginx/data/目录下的所有文件
数据备份
定期备份数据卷,以防数据丢失 :
bash
# 创建一个备份脚本
tar -czf nginx-ui-backup-$(date +%Y%m%d).tar.gz /opt/nginx/data/
# 可配合 crontab 定时执行
0 3 * * * tar -czf /backup/nginx-ui-$(date +%Y%m%d).tar.gz /opt/nginx/data/
❗ 常见问题与解决方法
| 问题 | 解决方法 |
|---|---|
| 容器启动失败 | 检查端口是否被占用:`netstat -tulnp |
| 无法访问 Web 界面 | 检查防火墙是否开放端口:firewall-cmd --list-ports 或 ufw status |
| 配置保存后不生效 | 检查配置文件语法是否正确,查看 Nginx 错误日志定位问题 |
| Let's Encrypt 证书申请失败 | 确认域名已正确解析到服务器 IP,检查 80/443 端口是否开放 |
| 忘记管理员密码 | 联系技术支持重置,或删除数据库文件重新初始化(会丢失所有配置) |
| Docker 容器内无法管理宿主机 Nginx | 这是预期行为,如需管理宿主机 Nginx,请改用安装脚本方式部署 |
📈 性能优化建议
- 限制容器资源 :在
docker run中添加参数--memory="512m" --cpus="0.5"限制资源使用 - 日志轮转:配置 logrotate 定期清理日志文件,防止磁盘写满
- 定期更新 :使用
docker pull uozi/nginx-ui:latest拉取最新镜像,重启容器完成更新
💎 总结
通过 Docker 部署 Nginx UI,你可以将 Nginx 的管理工作从命令行提升到图形化界面,大幅提升工作效率。无论是新手学习 Nginx,还是运维人员管理多站点、配置 HTTPS、调试反向代理,Nginx UI 都能让你事半功倍 。
开始之前,请记住部署方式的选择:
- 全新部署:用 Docker 方式,一条命令搞定
- 管理已有 Nginx :用安装脚本方式,
bash -c "$(curl -L https://cloud.nginxui.com/install.sh)" @ install
祝使用愉快!🎉