mcpField
N
Nginx UI

Nginx UI

本地服务
nginxui.com云与基础设施11.7k6 天前更新

关于 Nginx UI

Nginx UI 是用于通过 Web 界面管理 Nginx 的项目,面向维护 Nginx 配置和服务器的运维人员。它提供配置编辑、备份与恢复、集群管理、日志和服务器指标查看,并支持 AI Agent 交互。

主要功能

  1. 01在线编辑和测试 Nginx 配置
  2. 02配置自动备份、比较与恢复
  3. 03管理多节点集群配置
  4. 04查看服务器指标和 Nginx 日志
  5. 05部署并自动续期 Let's Encrypt 证书
  6. 06提供 Web 终端和代码补全

适用场景

  1. 01通过 Web 界面修改站点配置
  2. 02比较或恢复配置的历史版本
  3. 03向多个节点同步配置
  4. 04监控服务器指标并查看日志

MCP 相关

Nginx UI 提供 MCP 接口,供 AI Agent 与其交互,以自动管理配置和控制服务。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"nginx-ui": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"\\"
]
}
}
}
启动命令docker run -i --rm '\'

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
oci\

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Nginx UI 徽标

Nginx UI

又一款 Nginx Web UI,由 0xJacky、Hintay 和 Akino 开发。

DeepWiki Ask DeepWiki Documentation

AtomGit  自豪地托管于 AtomGit,这是 G-Star 计划的一部分。

AtomGit Stars

Build and Publish GitHub license Release Version GitHub Stars GitHub Forks Repo Size Closed Issues Docker Stars Docker Pulls Image Size

Featured|HelloGitHub Plumber Score

Deploy on RainYun

文档

如需查看文档,请访问 nginxui.com。

赞助

如果您觉得这个项目有帮助,请考虑赞助我们,以支持持续开发和维护。

GitHub Sponsors Afdian

赞助商
AxisNow

通过在中国大陆及全球范围内提供稳定的访问性能,保护并加速网站和 API;还可通过客户端 SDK 将加速和安全能力扩展到原生及移动应用——可自托管的私有 CDN|订阅制抗 DDoS CDN|自主可控、灵活组合的 CDN 网络。

官方社区群

欢迎加入 Nginx UI 官方微信社区群,与其他社区成员交流使用方法、部署思路和故障排查经验。

扫描下方二维码添加我们的微信,并在申请中注明 Nginx UI Community Group。管理员会邀请您加入官方社区群。

Nginx UI 微信社区群二维码

您的支持将帮助我们:

  • 🚀 加快新功能的开发
  • 🐛 修复错误并提升稳定性
  • 📚 完善文档和教程
  • 🌐 提供更好的社区支持
  • 💻 维护基础设施和演示服务器
工具支持
JetBrains Logo

感谢 JetBrains 为我们提供免费的开源许可证。

随时间变化的 Star 数

随时间变化的 Star 数

English | 西班牙语 | 简体中文 | 繁體中文 | 越南语 | 日本語

目录
  1. 关于项目
  2. 快速开始
  3. 手动构建
  4. Linux 脚本
  5. Nginx 反向代理配置示例
  6. 参与贡献
  7. 许可证

关于项目

仪表盘

演示

URL:https://demo.nginxui.com

  • 用户名: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/*;
}

更多信息:debian/conf/nginx.conf

安装

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 端口发布到主机后, 即可轻松完成切换。

注意
  1. 首次使用此容器时,请确保映射到 /etc/nginx 的卷为空。
  2. 如果要托管静态文件,可以将目录映射到容器。
  3. 如果你要从较旧的镜像升级,请参阅 Docker WebSocket 修复指南,了解所需的 conf.d/nginx-ui.conf 更新。
使用 Docker 部署
  1. 安装 Docker。

  2. 然后按如下方式部署 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
  1. Docker 容器运行后,使用 http://<your_server_ip>:8080/install 登录 nginx-ui 面板。 如果更改了端口映射,请通过映射到容器端口 80 的主机端口访问 Nginx UI。
使用 Docker-Compose 部署
  1. 安装 Docker-Compose。

  2. 创建如下所示的 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'
  1. 然后使用以下命令创建容器:
docker compose up -d
  1. 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”标签的问题。别忘了给这个项目点个星!再次感谢!

  1. Fork 此项目
  2. 创建功能分支(git checkout -b feature/AmazingFeature)
  3. 提交更改(git commit -m 'Add some AmazingFeature')
  4. 推送到分支(git push origin feature/AmazingFeature)
  5. 创建拉取请求

许可证

本项目根据 GNU Affero General Public License v3.0 许可证提供,许可证文件见 LICENSE。使用、分发或参与贡献本项目,即表示您同意此许可证的条款和条件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。