功能特点
nginxWebUI是一款图形化管理nginx配置得工具, 可以使用网页来快速配置nginx的各项功能, 包括http协议转发, tcp协议转发, 反向代理, 负载均衡, 静态html服务器, ssl证书自动申请、续签、配置等, 最终生成nginx.conf文件并覆盖nginx的默认配置文件, 控制nginx的启动与重载入, 完成nginx的功能配置. 被覆盖的conf文件都会被备份, 方便出现问题后随时进行替换.
nginxWebUI也可管理多个nginx服务器集群, 随时一键切换到对应服务器上进行nginx配置, 也可以一键将某台服务器配置同步到其他服务器, 方便集群管理.
nginx本身功能复杂, nginxWebUI并不能涵盖nginx所有功能, 但能覆盖nginx日常90%的功能使用配置, 更高级的功能配置仍然需要在最终生成的nginx.conf中进行手动编写。
部署此项目后, 配置nginx再也不用上网各种搜索, 再也不用手动申请和配置ssl证书, 只需要在本项目中进行增删改查就可方便的配置nginx。
注意事项
本系统通过Let's encrypt申请证书, 使用acme.sh脚本进行自动化申请和续签, 开启续签的证书将在每天凌晨2点进行续签, 只有超过60天的证书才会进行续签. 只支持在linux下签发证书.
添加tcp/ip转发配置支持时, 一些低版本的nginx可能需要重新编译,通过添加–with-stream参数指定安装stream模块才能使用, 但在ubuntu 18.04下, 官方软件库中的nginx已经带有stream模块, 不需要重新编译. nginxWebUI如果配置了tcp转发项的话, 会在conf文件中自动引入ngx_stream_module.so的配置项, 如果没有开启则不引入, 最大限度优化ngnix配置文件.
本项目开源地址 :
https://gitee.com/cym1102/nginxWebUI/
https://github.com/cym1102/nginxWebUI/
安装说明
以Ubuntu操作系统为例, 以下命令请使用root账户权限执行
1.安装java运行环境和nginx
Ubuntu:
apt updateapt install openjdk-11-jdk
apt install nginx
Centos:
yum install java-11-openjdk
yum install nginx
Windows:
下载JDK安装包 https://www.oracle.com/java/technologies/downloads/
下载nginx http://nginx.org/en/download.html
配置JAVA运行环境
JAVA_HOME : JDK安装目录
Path : JDK安装目录\bin
重启电脑
2.下载最新版发行包jar,
码云的服务器下载较慢, 提供CDN地址, 可在服务器上使用wget下载:
Linux: wget -O /home/nginxWebUI/nginxWebUI.jar http://file.nginxwebui.cn/nginxWebUI-3.2.7.jar
Windows: 直接使用浏览器下载 http://file.nginxwebui.cn/nginxWebUI-3.2.7.jar
启动命令
Linux: nohup java -jar -Dfile.encoding=UTF-8 /home/nginxWebUI/nginxWebUI.jar --server.port=8080 --project.home=/home/nginxWebUI/ > /dev/null &
Windows: java -jar -Dfile.encoding=UTF-8 D:/home/nginxWebUI/nginxWebUI.jar --server.port=8080 --project.home=D:/home/nginxWebUI/
参数说明
--server.port 占用端口, 默认以8080端口启动
--project.home 项目配置文件目录,存放数据库文件,证书文件,日志等, 默认为/home/nginxWebUI/
--spring.database.type=mysql 使用其他数据库,不填为使用本地h2数据库,可选mysql
--spring.datasource.url=jdbc:mysql://ip:port/nginxwebui 数据库url
--spring.datasource.username=root 数据库用户
--spring.datasource.password=pass 数据库密码
docker安装说明
本项目制作了docker镜像, 支持 x86_64/arm64/arm v7 平台,同时包含nginx和nginxWebUI在内, 一体化管理与运行nginx.
1.安装docker容器环境
Ubuntu:
apt install docker.io
Centos:
yum install docker
2.拉取镜像:
docker pull cym1102/nginxwebui:latest
3.启动容器:
docker run -itd \ -v /home/nginxWebUI:/home/nginxWebUI \ -e BOOT_OPTIONS="--server.port=8080" \ --privileged=true \ --net=host \ cym1102/nginxwebui:latest
注意:
启动容器时请使用--net=host参数, 直接映射本机端口, 因为内部nginx可能使用任意一个端口, 所以必须映射本机所有端口.
容器需要映射路径/home/nginxWebUI:/home/nginxWebUI, 此路径下存放项目所有数据文件, 包括数据库, nginx配置文件, 日志, 证书等, 升级镜像时, 此目录可保证项目数据不丢失. 请注意备份.
-e BOOT_OPTIONS 参数可填充java启动参数, 可以靠此项参数修改端口号
--server.port 占用端口, 不填默认以8080端口启动
日志默认存放在/home/nginxWebUI/log/nginxWebUI.log
使用说明
打开http://xxx.xxx.xxx.xxx:8080
第一次登录时会要求注册管理员密码
进入系统后, 可在管理员管理里面添加修改管理员账号, 请及时修改默认用户名和密码
在http转发配置中可以配置nginx的http项目, 进行http转发的参数, 快速向导会给出几个常用配置进行快速配置, 其他需要的配置可自由增删改查
在tcp转发配置中可以配置nginx的steam项目参数, 进行tcp转发的参数, 一般来说这里没有太多需要配置的.
在反向代理中可配置nginx的反向代理即server项功能, 这里是最常用的功能, 反向代理可指向其他ip端口或已配置好的负载均衡器, 也可直接指向静态html根目录, 可开启ssl功能, 可以直接从网页上上传pem文件和key文件, 或者使用服务器内部存放的证书, 或使用本系统申请的证书, 可以直接开启http转跳https功能.
在负载均衡中可配置nginx的负载均衡即upstream项功能, 在反向代理管理中可选择代理目标为配置好的负载均衡器. 负载均衡分为http协议负载均衡和tcp协议负载均衡
在证书管理中可添加证书, 并进行签发和续签, 开启定时续签后, 系统会自动续签即将过期的证书
备份文件管理, 每一次替换nginx.conf文件都会备份老文件, 这里可以看到nginx.cnf的备份历史版本, nginx出现错误时可以选择回滚到某一个历史版本
最终生成conf文件,可在此进行进一步手动修改,确认修改无误后,可覆盖本机conf文件,并进行效验和重启, 可以选择生成单一nginx.conf文件还是按域名将各个配置文件分开放在conf.d下
远程服务器管理, 如果有多台nginx服务器, 可以都部署上nginxWebUI, 然后登录其中一台, 在远程管理中添加其他服务器的ip和用户名密码, 就可以在一台机器上管理所有的nginx服务器了.
提供一键同步功能, 可以将某一台服务器的数据配置和证书文件同步到其他服务器中