Skip to content

Latest commit

 

History

History
336 lines (247 loc) · 10.7 KB

File metadata and controls

336 lines (247 loc) · 10.7 KB
Nginx UI Logo

Nginx UI

Yet another Nginx Web UI

Nginx 网络管理界面,由 0xJackyHintayAkino 开发。

Build and Publish

English | Español | 简体中文 | 繁體中文

目录
  1. 关于项目
  2. 入门指南
  3. 手动构建
  4. Linux 安装脚本
  5. Nginx 反向代理配置示例
  6. 贡献
  7. 赞助
  8. 开源许可

关于项目

Dashboard

在线预览

网址:https://demo.nginxui.com

  • 用户名:admin
  • 密码:admin

特色

  • 在线查看服务器 CPU、内存、系统负载、磁盘使用率等指标
  • 配置修改后会自动备份,可以对比任意版本或恢复到任意版本
  • 支持镜像操作到多个集群节点,轻松管理多服务器环境
  • 导出加密的 Nginx / Nginx UI 配置,方便快速部署和恢复到新环境
  • 增强版在线 ChatGPT 助手,支持多种模型,包括显示 Deepseek-R1 的思考链,帮助您更好地理解和优化配置
  • MCP (Model Context Protocol) 让 AI 代理程式与 Nginx UI 互动,实现自动化配置管理和服务控制
  • 一键申请和自动续签 Let's encrypt 证书
  • 在线编辑 Nginx 配置文件,编辑器支持大模型代码补全和 Nginx 配置语法高亮
  • 在线查看 Nginx 日志
  • 使用 Go 和 Vue 开发,发行版本为单个可执行的二进制文件
  • 保存配置后自动测试配置文件并重载 Nginx
  • 基于网页浏览器的高级命令行终端
  • 支持深色模式
  • 自适应网页设计

国际化

  • 英语
  • 简体中文
  • 繁体中文

我们欢迎您将项目翻译成任何语言。

入门指南

使用前注意

Nginx UI 遵循 Debian 的网页服务器配置文件标准。创建的网站配置文件将会放置于 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 及之后版本(x86 /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

您可以在 最新发行 (latest release) 中下载最新版本,或使用 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 &

使用以下命令停止 Nginx UI。

kill -9 $(ps -aux | grep nginx-ui | grep -v grep | awk '{print $2}')

使用 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:latest 构建。您可以直接将其监听到 80 和 443 端口以取代宿主机上的 Nginx。

注意:映射到 /etc/nginx 的文件夹应该为一个空目录。

注意

  1. 首次使用时,映射到 /etc/nginx 的目录必须为空文件夹。
  2. 如果你想要托管静态文件,可以直接将文件夹映射入容器中。

Docker 部署示例

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

手动构建

对于没有官方构建版本的平台,可以尝试手动构建。

依赖

  • Make

  • Golang 1.23+

  • node.js 21+

    npx browserslist@latest --update-db

构建前端

请在 app 目录中执行以下命令。

pnpm install
pnpm 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

卸载 Nginx UI 不保留配置和数据库文件

bash -c "$(curl -L https://cloud.nginxui.com/install.sh)" @ remove --purge

更多用法

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 这个仓库并创建一个 Pull Request。您也可以创建一个带有 enhancement (优化)标签的 Issue。最后,不要忘记给我们的项目一键三连点个 Star!再次感谢!

  1. Fork 项目
  2. 创建您的分支 (git checkout -b feature/AmazingFeature)
  3. 提交您的修改 (git commit -m 'Add some AmazingFeature')
  4. 推送到您的分支 (git push origin feature/AmazingFeature)
  5. 创建一个 Pull Request

赞助

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

GitHub Sponsors Afdian

官方交流群

欢迎加入 Nginx UI 官方微信交流群,和社区用户一起交流使用经验、部署方案与问题排查。

扫描下方二维码添加好友,并备注 Nginx UI 交流群,管理员会邀请您加入官方交流群。

Nginx UI WeChat Community QR Code

工具支持

JetBrains Logo

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

开源许可

此项目基于 GNU Affero Public License v3.0 (AGPLv3) 许可,请参阅 LICENSE 文件。通过使用、分发或对本项目做出贡献,表明您已同意本许可证的条款和条件。