
功能说明
本项目可以使用WebUI配置nginx的各项功能, 包括http协议转发, tcp协议转发, 反向代理, 负载均衡, 日志管理和解析, ssl证书自动申请、续签、配置等, 最终生成nginx.conf文件并覆盖nginx的默认配置文件, 完成nginx的最终功能配置.
支持nginx服务器集群批量管理, 可批量发送配置文件, 批量执行重启和重载入的命令.
部署此项目后, 配置nginx再也不用上网各种搜索, 再也不用手动申请和配置ssl证书, 再也不用为了配多个nginx登录n遍服务器了, 只需要在本项目中进行增删改查就可方便的配置nginx和服务器集群。
nginx本身功能复杂, 本项目并不能涵盖nginx所有功能, 但支持配置的功能已经涵盖90%的nginx使用, 更高级的功能配置可根据需要在项目提供的自定义参数中配置.
技术说明
除了nginx的conf可视化配置以外, nginxWebUI还提供以下功能:
-
静态网页包可上传并进行统一管理
-
ssl证书可在线申请并定时续签. 统一对ssl进行管理及部署
-
集成nginx效验, 重载, 启动, 停止命令, 可在网页上对nginx运行状态进行操作
-
可在一台服务器上远程管理其他nginxWebUI服务器, 可以在一个网址上修改复数的nginx集群配置, 同时提供集群nginx服务运行状态监控功能, 使用邮件进行宕机提醒.
-
可对nginx中配置的负载均衡节点进行运行状态监控, 使用邮件进行宕机提醒.
-
集成nginx日志解析功能, 可配置是否生成nginx日志及定时对nginx日志进行解析
-
可反向导入已有的nginx配置文件, 可快速克隆已有反向代理配置, 可检查反向代理的端口占用.
-
提供系统cpu 内存 硬盘运行状态监测
-
提供中英文双语切换
界面示例
首次登入界面:
首页界面展示:

配置文件界面展示:

开源
https://gitee.com/cym1102/nginxWebUI/tree/master
官网地址: http://www.nginxwebui.cn
jar安装说明
注意:本项目需要在root用户下运行系统命令,极容易被黑客利用,请一定修改密码为复杂密码
1.安装java运行环境和nginx
ubuntu:
apt install openjdk-11-jdk
apt install nginx
centos:
yum install java-11-openjdk
yum install nginx
实验机器已经安装java和nginx如下:
[root@uias-pro-1-logcatch ~]# java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
[root@uias-pro-1-logcatch ~]# nginx -V
nginx version: nginx/1.8.1
built by gcc 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-
path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-
path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --
http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-
path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-
uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --
user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-
http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-
http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-
http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-
http_auth_request_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6 --with-
http_spdy_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-
protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic'
[root@uias-pro-1-logcatch ~]# hostname -I
10.252.71.78
2.下载最新版发行包jar
有新版本只需要修改路径中的版本即可
[root@uias-pro-1-logcatch ~]# mkdir /home/nginxWebUI
[root@uias-pro-1-logcatch ~]# wget -O /home/nginxWebUI/nginxWebUI.jar http://file.nginxwebui.cn/nginxWebUI-2.5.0.jar
[root@uias-pro-1-logcatch nginxWebUI]# ll
total 116120
drwxr-xr-x 2 root root 28 Mar 10 13:54 log
-rw-r--r-- 1 root root 5231 Mar 10 13:54 mime.types
-rw-r--r-- 1 root root 65 Mar 10 13:54 nginx.conf
-rw-r--r-- 1 xtgl xtgl 59332824 Mar 10 14:53 nginxWebUI.jar
-rw-r--r-- 1 root root 59334267 Mar 8 21:08 nginxWebUI.jar.bak
-rw-r--r-- 1 root root 225280 Mar 10 15:20 sqlite.db
drwxr-xr-x 2 root root 42 Mar 10 14:11 temp
3.启动程序
[root@uias-pro-1-logcatch nginxWebUI]# nohup java -jar -Xmx64m /home/nginxWebUI/nginxWebUI.jar --server.port=5768 --project.home=/home/nginxWebUI/ > /dev/null &
参数说明(都是非必填)
-Xmx64m 最大分配内存数
–server.port 占用端口, 默认以8080端口启动
–project.home 项目配置文件目录,存放数据库文件,证书文件,日志等, 默认为/home/nginxWebUI/
–spring.database.type=mysql 使用其他数据库,不填为使用本地sqlite,选项包括mysql和postgresql
–spring.datasource.url=jdbc:mysql://ip:port/nginxwebui 数据库url
–spring.datasource.username=root 数据库用户
–spring.datasource.password=pass 数据库密码
注意命令最后加一个&号, 表示项目后台运行
docker安装部署
本项目制作了docker镜像, 同时包含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 /bin/bash
注意:
启动容器时请使用–net=host参数, 直接映射本机端口, 因为内部nginx可能使用任意一个端口, 所以必须映射本机所有端口.
容器需要映射路径/home/nginxWebUI:/home/nginxWebUI, 此路径下存放项目所有数据文件, 包括数据库, nginx配置文件, 日志, 证书等, 升级镜像时, 此目录可保证项目数据不丢失. 请注意备份.
-e BOOT_OPTIONS 参数可填充java启动参数, 可以靠此项参数修改端口号
–server.port 占用端口, 不填默认以8080端口启动
日志默认存放在/home/nginxWebUI/log/nginxWebUI.log
另: 使用docker-compose时配置文件如下
version: "3.2"
services:
nginxWebUi-server:
image: cym1102/nginxwebui:2.5.0
volumes:
- type: bind
source: "/home/nginxWebUI"
target: "/home/nginxWebUI"
environment:
BOOT_OPTIONS: "--server.port=8080"
privileged: true
network_mode: "host"
编译说明
使用maven编译打包
mvn clean package
使用docker构建镜像
docker build -t nginxwebui:2.5.0 .
添加开机启动
编辑service配置
vim /etc/systemd/system/nginxwebui.service
[Unit]
Description=NginxWebUI
After=syslog.target
After=network.target
[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/home/nginxWebUI
ExecStart=/usr/bin/java -jar /home/nginxWebUI/nginxWebUI.jar
Restart=always
[Install]
WantedBy=multi-user.target
之后执行
systemctl daemon-reload
systemctl enable nginxwebui.service
systemctl start nginxwebui.service
使用说明
打开 http://xxx.xxx.xxx.xxx:prot 进入主页
[root@uias-pro-1-logcatch nginxWebUI]# nohup java -jar -Xmx64m /home/nginxWebUI/nginxWebUI.jar --server.port=5768 --project.home=/home/nginxWebUI/ > /dev/null &
这里采用的是jar包启动,改用端口5768
http://10.252.71.78:5768/
具体的使用,可以自行研究,基本配置和到服务器终端配置基本一致。
本系统提供http接口调用, 只要打开 http://xxx.xxx.xxx.xxx:8080/doc.html 即可查看knife4j接口页面.
接口调用需要在header中添加token, 其中token的获取需要在管理员管理中, 打开用户的接口调用权限, 然后通过用户名密码调用获取token接口, 才能得到token, 然后在knife4j的文档管理中设置全局token.
注意: 参数说明中, 带*前缀的均是必填项
如要屏蔽knife4j界面展示, 只要在启动参数添加 –knife4j.production=true 即可屏蔽
http://10.252.71.78:5768/doc.html#/home

密码找回
如果忘记了登录密码,可按如下教程找回密码
安装sqlite3命令
apt install sqlite3
读取sqlite.db文件
sqlite3 /home/nginxWebUI/sqlite.db
查找admin表
select * from admin;
退出sqlite3
.quit

更多咨询,关注微信公众号
