nginx的可视化配置工具nginxWebUI的使用

文章目录

1、nginx简介

Nginx 是一个高效的 HTTP 服务器和反向代理,它擅长处理静态资源、负载均衡和网关代理等任务。Nginx 的设置主要通过一个主配置文件 "nginx.conf" 来完成,其中可以定义服务器配置块(server blocks)和位置匹配规则(location blocks)等。

具体配置可参见我的另一篇文章:

Nginx 配置终极版指南(全网最详细)https://tigerhhzz.blog.csdn.net/article/details/142336871

虽然Nginx 的配置语法相当简洁,但在处理复杂的路由规则、反向代理设置或 SSL 配置等时,配置文件就会变得复杂;涉及到多层嵌套和特定条件判断,很容易写错配置文件,导致配置错误或冲突无法启动nginx服务。

因此,正确配置Nginx以确保应用程序的安全性和可靠性至关重要。

2、nginxWebUI

nginxWebUI是一款图形化管理nginx配置得工具, 可以使用网页来快速配置nginx的各项功能, 包括http协议转发, tcp协议转发, 反向代理, 负载均衡, 静态html服务器, ssl证书自动申请、续签、配置等, 配置好后可一建生成nginx.conf文件, 同时可控制nginx使用此文件进行启动与重载, 完成对nginx的图形化控制闭环.

nginxWebUI也可管理多个nginx服务器集群, 随时一键切换到对应服务器上进行nginx配置, 也可以一键将某台服务器配置同步到其他服务器, 方便集群管理.

nginx本身功能复杂, nginxWebUI并不能涵盖nginx所有功能, 但能覆盖nginx日常90%的功能使用配置, 平台没有涵盖到的nginx配置项, 可以使用自定义参数模板, 在conf文件中生成配置独特的参数。

部署此项目后, 配置nginx再也不用上网各种搜索配置代码, 再也不用手动申请和配置ssl证书, 只需要在本项目中进行增删改查就可方便的配置和启动nginx。

2.1、技术解读

nginxWebUI项目是基于solon的web系统, 数据库使用sqlite, 因此服务器上不需要安装任何数据库

本系统通过Let's encrypt申请证书, 使用acme.sh脚本进行自动化申请和续签, 开启续签的证书将在每天凌晨2点进行续签, 只有超过60天的证书才会进行续签. 只支持在linux下签发证书.

添加tcp/ip转发配置支持时, 一些低版本的nginx可能需要重新编译,通过添加--with-stream参数指定安装stream模块才能使用, 但在ubuntu 18.04下, 官方软件库中的nginx已经带有stream模块, 不需要重新编译. 本系统如果配置了tcp转发项的话, 会自动引入ngx_stream_module.so的配置项, 如果没有开启则不引入, 最大限度优化ngnix配置文件。

2.2、开源版和专业版之间的区别

nginxWebUI有开源版和专业版,以下是两者之间的区别:

功能 专业版 开源版
基本参数配置
http参数配置
反向代理配置
Stream参数配置
负载均衡配置
参数模板
静态网页上传
密码文件管理
黑白名单IP
证书申请
API接口文档
远程管理
节点及分组统一管理 ×
节点配置文件统一同步 ×
节点信息数据采集 ×
节点状态统计 ×
缓存配置 ×
nginx日志采集 ×
nginx日志查看 ×
nginx日志统计 ×
nginx流量统计 ×

2.3、功能解读

  1. 配置文件数据化

将nginx繁琐的配置文件修改操作,更改为数据的增删改查,最大限度解放劳动力,不再到处找修改教程。

  1. 集群管理

在一台机器管理所有nginx集群服务器配置文件,进行统一修改与重启,不再需要频繁登录各个服务器操作。

  1. 证书一建申请与自动续签

一键免费生成ssl证书并进行域名绑定,可在证书过期前进行自动续签,保证网站的https安全性与持续性。

  1. 强大的nginx日志解析

可一键配置nginx日志生成格式,并进行图形化解析,充分了解访客数据与后台服务运行状况。

3、安装与使用

本文讲解是通过docker方式进行安装:

3.1、下载镜像

bash 复制代码
docker pull registry.cn-hangzhou.aliyuncs.com/cym19871102/nginxwebui:latest

3.2、查看镜像

bash 复制代码
docker images

3.3、启动容器

bash 复制代码
docker run -itd -v /home/nginxWebUI:/home/nginxWebUI -e BOOT_OPTIONS="--server.port=8080" --net=host --restart=always registry.cn-hangzhou.aliyuncs.com/cym19871102/nginxwebui:latest

注意:

  1. 启动容器时请使用--net=host参数, 直接映射本机端口, 因为内部nginx可能使用任意一个端口, 所以必须映射本机所有端口。

  2. 容器需要映射路径/home/nginxWebUI:/home/nginxWebUI, 此路径下存放项目所有数据文件, 包括数据库, nginx配置文件, 日志, 证书等, 升级镜像时, 此目录可保证项目数据不丢失. 请注意备份。

  3. -e BOOT_OPTIONS 参数可填充java启动参数, 可以靠此项参数修改端口号, "--server.port 占用端口", 不填默认以8080端口启动

  4. 日志默认存放在/home/nginxWebUI/log/nginxWebUI.log

3.4、使用

打开 http://xxx.xxx.xxx.xxx:8088 进入主页

修改admin密码

在http参数配置中可以配置nginx的http项目,进行http转发, 默认会给出几个常用配置, 其他需要的配置可自由增删改查. 可以勾选开启日志跟踪, 生成日志文件。

在TCP参数配置中可以配置nginx的stream项目参数, 大多数情况下可不配.

在反向代理中可配置nginx的反向代理即server项功能, 可开启ssl功能, 可以直接从网页上上传pem文件和key文件, 或者使用系统内申请的证书, 可以直接开启http转跳https功能,也可开启http2协议

在负载均衡中可配置nginx的负载均衡即upstream项功能, 在反向代理管理中可选择代理目标为配置好的负载均衡

在html静态文件上传中可直接上传html压缩包到指定路径,上传后可直接在反向代理中使用,省去在Linux中上传html文件的步骤

在证书管理中可添加证书, 并进行签发和续签, 开启定时续签后, 系统会自动续签即将过期的证书, 注意:证书的签发是用的acme.sh的dns模式, 需要配合阿里云的aliKey和aliSecret来使用. 请先申请好aliKey和aliSecret

备份文件管理, 这里可以看到nginx.cnf的备份历史版本, nginx出现错误时可以选择回滚到某一个历史版本

最终生成conf文件,可在此进行进一步手动修改,确认修改无误后,可覆盖本机conf文件,并进行效验和重启, 可以选择生成单一nginx.conf文件还是按域名将各个配置文件分开放在conf.d下

远程服务器管理, 如果有多台nginx服务器, 可以都部署上nginxWebUI, 然后登录其中一台, 在远程管理中添加其他服务器的ip和用户名密码, 就可以在一台机器上管理所有的nginx服务器了.

提供一键同步功能, 可以将某一台服务器的数据配置和证书文件同步到其他服务器中

接口开发

本系统提供http接口调用, 打开 http://xxx.xxx.xxx.xxx:8080/doc.html 即可查看smart-doc接口页面.

接口调用需要在http请求header中添加token, 其中token的获取需要先在管理员管理中, 打开用户的接口调用权限, 然后通过用户名密码调用获取token接口, 才能得到token。

4、总结

nginxWebUI 通过直观的 Web 界面、丰富的功能和快速的部署方式,大幅简化了 nginx 的管理流程。无论是个人开发者还是运维团队,都可以借助它高效管理和优化 nginx 服务。

开源地址:https://gitee.com/cym1102/nginxWebUI


有些事不是看到了希望才去坚持 而是因为坚持才会看到希望。


相关推荐
运维闲章印时光16 小时前
网络断网、环路、IP 冲突?VRRP+MSTP+DHCP 联动方案一次性解决
运维·服务器·开发语言·网络·php
ARTHUR-SYS16 小时前
基于Kali linux 安装pyenv及简单使用方法及碰到的问题
linux·运维·chrome
苹果醋316 小时前
数据结构其一 线性表
java·运维·spring boot·mysql·nginx
CIb0la16 小时前
微软宣布 Windows 11 v25H2 GA
运维·安全·生活
java干货17 小时前
我用Nginx做了负载均衡,还需要API网关吗?
运维·nginx·负载均衡
IvanCodes18 小时前
十五、深入理解 SELinux
linux·运维·服务器
对着晚风做鬼脸20 小时前
MySQL 运维知识点(十六)---- 读写分离
运维·数据库·mysql·adb
Rsingstarzengjx1 天前
搭建Jenkins gitlab 环境
运维·服务器
君之嘞1 天前
【操作系统基础】认识操作系统:系统调用
linux·运维·microsoft
爱倒腾的老唐1 天前
07、Linux 文件管理
linux·运维·服务器