一篇文章带你了解一款强大的NG图形化界面工具---Nginx-UI 简介

601 阅读3分钟

Nginx-UI 简介

Nginx-UI 是一个基于 Web 的图形化界面工具,用于简化 Nginx 服务器的配置和管理。它允许用户通过可视化操作生成 Nginx 配置文件,支持 SSL 证书管理、反向代理配置、负载均衡等常见功能,适合开发者和运维人员快速管理 Nginx 服务。


核心特点

  1. 可视化配置

    • 通过 Web 界面直接配置 Nginx 的 serverlocationupstream 等模块,无需手动编辑配置文件。
    • 支持实时预览生成的配置代码。
  2. SSL 证书管理

    • 自动申请和续签 Let's Encrypt 证书。
    • 支持上传自定义证书(如商业证书)。
  3. 配置版本控制

    • 自动备份历史配置,支持快速回滚到任意版本。
  4. 权限与安全

    • 多用户角色管理(管理员、普通用户)。
    • 支持 OAuth2 登录(如 GitHub、Google)。
  5. API 支持

    • 提供 RESTful API,便于集成到自动化运维系统。
  6. 实时生效

    • 配置修改后自动校验语法,一键重载 Nginx 服务。

安装部署

方式 1:Docker 部署(推荐)

步骤:

  1. 拉取镜像:

    docker pull nginxui/nginx-ui:latest
    
  2. 运行容器:

    docker run -d \
      --name nginx-ui \
      -p 8080:80 -p 4430:443 \
      -v /path/to/nginx.conf:/etc/nginx/nginx.conf \
      -v /path/to/sites:/etc/nginx/sites \
      -v /var/run/docker.sock:/var/run/docker.sock \
      nginxui/nginx-ui
    

    参数说明:

    • -p 8080:80:将容器 80 端口映射到宿主机 8080(Web 界面)。
    • -v /path/to/nginx.conf:挂载 Nginx 主配置文件。
    • -v /var/run/docker.sock:允许通过 Docker API 管理容器(可选)。
    内网虚拟机部署:
     docker run -p 8081:80 --name=nginx-ui --restart=always -v /mydata/nginx-ui/ngetc:/etc/nginx -v /mydata/nginx-ui/uietc:/etc/nginx-ui -e TZ=Asia/Shanghai -dit uozi/nginx-ui:latest
     docker run -p 80:80 --name nginx -v /usr/local/docker/nginx/html:/usr/share/nginx/html -v /usr/local/docker/nginx/logs:/var/log/nginx --net=host -d nginx:latest
     docker run -p 8081:80 --name=nginx-ui --restart=always -v /mydata/nginx-ui/ngetc:/etc/nginx -v /mydata/nginx-ui/uietc:/etc/nginx-ui -e TZ=Asia/Shanghai --net=host -dit uozi/nginx-ui:latest
    

方式 2:二进制文件安装

  1. 下载二进制文件:
    wget https://github.com/nginxui/nginx-ui/releases/latest/download/nginx-ui-linux-amd64.tar.gz
    tar -zxvf nginx-ui-linux-amd64.tar.gz
    
  2. 创建 Systemd 服务:
    sudo nano /etc/systemd/system/nginx-ui.service
    
    [Unit]
    Description=Nginx-UI
    After=network.target
    
    [Service]
    ExecStart=/path/to/nginx-ui --config /etc/nginx-ui/config.yml
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    
  3. 启动服务:
    sudo systemctl enable --now nginx-ui
    

方式 3:源码编译(适合开发者)

  1. 安装依赖(Go 1.16+):
    git clone https://github.com/nginxui/nginx-ui.git
    cd nginx-ui
    go mod download
    
  2. 编译并运行:
    go build -o nginx-ui
    ./nginx-ui --config config.yml
    

使用方法

  1. 访问 Web 界面

    • 浏览器打开 http://服务器IP:8080,默认账号密码为 admin / admin
  2. 配置 Nginx 服务

    • 添加站点:进入 Sites → 点击 Add Site,填写域名、监听端口、SSL 证书等。
    • 反向代理:在站点配置中添加 Location,选择 Proxy 类型,填写后端服务地址(如 http://localhost:3000)。
    • 负载均衡:在 Upstream 模块添加多个后端服务器,配置权重和健康检查。
  3. SSL 证书申请

    • 进入 CertificatesRequest Certificate,填写域名并选择 Let's Encrypt 作为 CA。
  4. 应用配置

    • 修改完成后点击 Save & Apply,系统会自动校验语法并重载 Nginx。
  5. API 调用示例

    curl -X GET "http://localhost:8080/api/configs" -H "Authorization: Bearer {API_TOKEN}"
    

注意事项

  1. 权限问题:确保 Nginx-UI 对挂载的 Nginx 配置目录有读写权限。
  2. 安全性:修改默认账号密码,启用 HTTPS 访问 Web 界面。
  3. 兼容性:Nginx-UI 生成的配置可能依赖特定模块(如 http_ssl_module),需确保 Nginx 已启用。

通过 Nginx-UI,用户可以大幅简化 Nginx 的配置流程,尤其适合需要频繁调整服务配置的团队或个人开发者。