关于 Nginx UI
Nginx UI 是用于通过 Web 界面管理 Nginx 的项目,面向维护 Nginx 配置和服务器的运维人员。它提供配置编辑、备份与恢复、集群管理、日志和服务器指标查看,并支持 AI Agent 交互。
主要功能
- 01在线编辑和测试 Nginx 配置
- 02配置自动备份、比较与恢复
- 03管理多节点集群配置
- 04查看服务器指标和 Nginx 日志
- 05部署并自动续期 Let's Encrypt 证书
- 06提供 Web 终端和代码补全
适用场景
- 01通过 Web 界面修改站点配置
- 02比较或恢复配置的历史版本
- 03向多个节点同步配置
- 04监控服务器指标并查看日志
MCP 相关
Nginx UI 提供 MCP 接口,供 AI Agent 与其交互,以自动管理配置和控制服务。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Nginx UI
又一款 Nginx Web UI,由 0xJacky、Hintay 和 Akino 开发。
文档
如需查看文档,请访问 nginxui.com。
赞助
如果您觉得这个项目有帮助,请考虑赞助我们,以支持持续开发和维护。
赞助商
通过在中国大陆及全球范围内提供稳定的访问性能,保护并加速网站和 API;还可通过客户端 SDK 将加速和安全能力扩展到原生及移动应用——可自托管的私有 CDN|订阅制抗 DDoS CDN|自主可控、灵活组合的 CDN 网络。
官方社区群
欢迎加入 Nginx UI 官方微信社区群,与其他社区成员交流使用方法、部署思路和故障排查经验。
扫描下方二维码添加我们的微信,并在申请中注明 Nginx UI Community Group。管理员会邀请您加入官方社区群。
您的支持将帮助我们:
- 🚀 加快新功能的开发
- 🐛 修复错误并提升稳定性
- 📚 完善文档和教程
- 🌐 提供更好的社区支持
- 💻 维护基础设施和演示服务器
工具支持
感谢 JetBrains 为我们提供免费的开源许可证。
随时间变化的 Star 数
English | 西班牙语 | 简体中文 | 繁體中文 | 越南语 | 日本語
目录
关于项目

演示
- 用户名:admin
- 密码:admin
功能
- 在线统计服务器指标,例如 CPU 使用率、内存使用率、平均负载和磁盘使用率。
- 配置更改后自动备份,并支持版本比较和恢复
- 集群管理支持将操作镜像到多个节点,轻松管理多服务器环境
- 导出加密的 Nginx / Nginx UI 配置,以便快速部署到新环境并进行恢复
- 增强型在线 ChatGPT 助手支持多种模型,包括 Deepseek-R1 的思维链显示,帮助你更好地理解和优化配置
- MCP(模型上下文协议)提供专用接口,让 AI Agent 与 Nginx UI 交互,从而实现自动化配置管理和服务控制。
- 一键部署并自动续期 Let's Encrypt 证书。
- 在线编辑网站配置:可使用自行设计的 NgxConfigEditor,它是面向 nginx 配置的易用块编辑器;也可使用 Ace Code Editor,它支持 LLM 代码补全并可高亮 nginx 配置语法。
- 在线查看 Nginx 日志
- 使用 Go 和 Vue 编写,分发形式为单个可执行二进制文件。
- 自动测试配置文件,并在保存配置后重新加载 nginx。
- Web 终端
- 暗色模式
- 响应式网页设计
国际化
我们很自豪地提供以下语言的官方支持:
- 英语
- 简体中文
- 繁体中文
作为非英语母语者,我们努力做到准确,但也知道总有改进空间。如果你发现任何问题,欢迎反馈!
感谢出色的社区,此外还提供了更多语言!请在 Weblate 上查看并参与翻译。
快速开始
使用前
Nginx UI 遵循 Debian Web 服务器配置文件标准。创建的网站配置文件将放在 Nginx 配置目录(自动检测)下的 sites-available 文件夹中。已启用网站的配置文件会在 sites-enabled 文件夹中创建软链接。你可能需要调整配置文件的组织方式。
对于非 Debian(和 Ubuntu)系统,你可能需要将 nginx.conf 配置文件的内容更改为如下所示的 Debian 风格。
http {
# ...
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
安装
Nginx UI 支持以下平台:
- macOS 11 Big Sur 及更高版本(amd64 / arm64)
- Windows 10 及更高版本(amd64 / arm64)
- Linux 2.6.23 及更高版本(x86 / amd64 / arm64 / armv5 / armv6 / armv7 / mips32 / mips64 / riscv64 / loongarch64)
- 包括但不限于 Debian 7 / 8、Ubuntu 12.04 / 14.04 及更高版本、CentOS 6 / 7、Arch Linux
- FreeBSD
- OpenBSD
- Dragonfly BSD
- Openwrt
你可以访问最新版本下载最新发行版,也可以直接使用 Linux 安装脚本。
使用方法
首次运行 Nginx UI 时,请在浏览器中访问 http://<your_server_ip>:<listen_port>
以完成后续配置。
使用可执行文件
在终端中运行 Nginx UI
nginx-ui -config app.ini
在终端中按 Control+C 退出 Nginx UI。
在后台运行 Nginx UI
nohup ./nginx-ui -config app.ini -pidfile nginx-ui.pid &
使用以下命令优雅地停止 Nginx UI。
kill -TERM "$(cat nginx-ui.pid)"
使用 Systemd
如果你使用Linux 安装脚本,Nginx UI 将作为 nginx-ui 服务安装到 systemd 中。请使用 systemctl 命令进行控制。
启动 Nginx UI
systemctl start nginx-ui
停止 Nginx UI
systemctl stop nginx-ui
重启 Nginx UI
systemctl restart nginx-ui
使用 Docker
我们的 Docker 镜像 uozi/nginx-ui:latest 基于最新的 nginx 镜像, 可用于替换主机上的 Nginx。将容器的 80 和 443 端口发布到主机后, 即可轻松完成切换。
注意
- 首次使用此容器时,请确保映射到 /etc/nginx 的卷为空。
- 如果要托管静态文件,可以将目录映射到容器。
- 如果你要从较旧的镜像升级,请参阅 Docker WebSocket 修复指南,了解所需的
conf.d/nginx-ui.conf更新。
使用 Docker 部署
-
然后按如下方式部署 nginx-ui:
docker run -dit \
--name=nginx-ui \
--restart=always \
-e TZ=Asia/Shanghai \
-v /mnt/user/appdata/nginx:/etc/nginx \
-v /mnt/user/appdata/nginx-ui:/etc/nginx-ui \
-v /var/run/docker.sock:/var/run/docker.sock \
-p 8080:80 -p 8443:443 \
uozi/nginx-ui:latest
- Docker 容器运行后,使用
http://<your_server_ip>:8080/install登录 nginx-ui 面板。 如果更改了端口映射,请通过映射到容器端口80的主机端口访问 Nginx UI。
使用 Docker-Compose 部署
-
创建如下所示的 docker-compose.yml 文件:
services:
nginx-ui:
stdin_open: true
tty: true
container_name: nginx-ui
restart: always
environment:
- TZ=Asia/Shanghai
volumes:
- '/mnt/user/appdata/nginx:/etc/nginx'
- '/mnt/user/appdata/nginx-ui:/etc/nginx-ui'
- '/var/www:/var/www'
- '/var/run/docker.sock:/var/run/docker.sock'
ports:
- 8080:80
- 8443:443
image: 'uozi/nginx-ui:latest'
- 然后使用以下命令创建容器:
docker compose up -d
- Docker 容器运行后,使用
http://<your_server_ip>:8080/install登录 nginx-ui 面板。 如果更改了端口映射,请通过映射到容器端口80的主机端口访问 Nginx UI。
手动构建
对于没有官方构建版本的平台,可以手动构建。
前置条件
-
Make
-
Golang 1.27.2+
-
Bun 1.4.3(本仓库的 package manifest 和 CI 固定使用的版本)
-
node.js 21+
npx browserslist@latest --update-db
构建前端
请在 app 目录中执行以下命令。
bun install
bun run build
构建后端
请先构建应用,然后在项目根目录中执行以下命令。
go generate
go build -tags=jsoniter -ldflags "$LD_FLAGS -X 'github.com/0xJacky/Nginx-UI/settings.buildTime=$(date +%s)'" -o nginx-ui -v main.go
Linux 安装脚本
基本用法
安装和升级
bash -c "$(curl -L https://cloud.nginxui.com/install.sh)" @ install
默认监听端口为 9000,默认 HTTP Challenge 端口为 9180。
如果端口冲突,请手动修改 /usr/local/etc/nginx-ui/app.ini,
然后使用 systemctl restart nginx-ui 重新加载 Nginx UI 服务。
移除 Nginx UI,但保留配置和数据库文件
bash -c "$(curl -L https://cloud.nginxui.com/install.sh)" @ remove
更多用法
bash -c "$(curl -L https://cloud.nginxui.com/install.sh)" @ help
Nginx 反向代理配置示例
server {
listen 80;
listen [::]:80;
server_name <your_server_name>;
rewrite ^(.*)$ https://$host$1 permanent;
}
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
http2 on;
server_name <your_server_name>;
ssl_certificate /path/to/ssl_cert;
ssl_certificate_key /path/to/ssl_cert_key;
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_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_pass http://127.0.0.1:9000/;
}
}
参与贡献
正是各种贡献让开源社区成为如此出色的学习、启发和创造之地。我们非常感谢您的任何贡献。
如果您有任何改进建议,请 fork 此仓库并创建拉取请求。您也可以直接提交带有“enhancement”标签的问题。别忘了给这个项目点个星!再次感谢!
- Fork 此项目
- 创建功能分支(
git checkout -b feature/AmazingFeature) - 提交更改(
git commit -m 'Add some AmazingFeature') - 推送到分支(
git push origin feature/AmazingFeature) - 创建拉取请求
许可证
本项目根据 GNU Affero General Public License v3.0 许可证提供,许可证文件见 LICENSE。使用、分发或参与贡献本项目,即表示您同意此许可证的条款和条件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。