参考官网:https://github.com/cym1102/nginxWebUI
文档说明:nginxWebUI - 文档
一、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。
二、准备环境
- 操作系统:
CentOS 7.9
- Nginx
- JDK
- MySQL
三、安装依赖
1.安装Nginx
这里安装的版本为 1.21.6
,可参考我博客中相关文档。
2.安装JDK
这里安装的版本为 1.8.0_421
,可参考我博客中相关文档。
3.安装MySQL
这里安装的版本为 8.0.34
,可参考我博客中相关文档。
四、创建Nginx数据库
1.登录MySQL数据库
前面已经安装并初始化好了 MySQL,现在登录 MySQL 数据库:
mysql -uroot -pmysql2025
2.创建Nginx数据库
# 创建名为 jumpserver 的数据库
create database nginx;
# 刷新权限表,使所有更改立即生效
flush privileges;
查看 nginx 数据库的字符集和排序规则:
select default_character_set_name, default_collation_name from information_schema.schemata where schema_name = 'nginx';
查看 nginx 数据库的所有表及其字符集和排序规则:
select table_name, table_collation from information_schema.tables where table_schema = 'nginx';
查看 nginx 数据库创建:
show create database nginx;
删除 nginx 数据库:
drop database nginx;
五、安装nginxWebUI
1.创建安装目录
mkdir /usr/local/nginxwebui
2.下载jar包
通过 wget
命令下载 nginxWebUI jar 包,指定下载到安装目录 /usr/local/nginxwebui
下,并重命名为 nginxWebUI.jar
:
wget -O /usr/local/nginxwebui/nginxWebUI-4.2.4.jar https://gitee.com/cym1102/nginxWebUI/releases/download/4.2.4/nginxWebUI-4.2.4.jar
有新版本只需要修改路径中的版本即可。
3.启动nginxWebUI
使用 java
命令启动 nginxWebUI 程序,并放置于后台中运行:
nohup java -jar -Dfile.encoding=UTF-8 /usr/local/nginxwebui/nginxWebUI-4.2.4.jar --server.port=8080 --project.home=/usr/local/nginxwebui/ --project.home=/usr/local/nginxwebui --spring.database.type=mysql --spring.datasource.url=jdbc:mysql://localhost:3306/nginx --spring.datasource.username=root --spring.datasource.password=mysql2025 > /dev/null &
解释说明:
--server.port
:占用端口, 默认以8080端口启动。--project.home
:项目配置文件目录,存放数据库文件,证书文件,日志等。--spring.database.type=mysql
:使用其他数据库,不填为使用本地h2,可选mysql。--spring.datasource.url=jdbc:mysql://ip:port/nginxwebui
:数据库url。--spring.datasource.username=root
:数据库用户。--spring.datasource.password=pass
:数据库密码。
六、配置脚本启动和关闭nginxWebUI服务
这里可以通过配置脚本来启动和关闭 nginxWebUI 服务。
1.配置脚本启动服务
在 /usr/local/nginxwebui
目录下创建一个名为 start.sh
的启动服务脚本文件,并添加以下内容:
cat > /usr/local/nginxwebui/start.sh <<'EOF'
#!/bin/bash
ver=4.2.4
srv_port=8080
srv_home=/usr/local/nginxwebui
db_type=mysql
db_ip=localhost
db_name=nginx
db_user=root
db_pwd=mysql2025
srv_name='nginxWebUI'
srv_file=${srv_home}/$srv_name-${ver}.jar
PID=$(pgrep -f $srv_name)
if [ -z "$PID" ]; then
nohup java -jar -Dfile.encoding=UTF-8 ${srv_file} \
--server.port=${srv_port} \
--spring.database.type=${db_type} \
--spring.datasource.url=jdbc:mysql://$db_ip:3306/${db_name} \
--spring.datasource.username=${db_user} \
--spring.datasource.password=${db_pwd} \
--project.home=${srv_home} > /dev/null 2>&1 &
else
echo "$srv_name($PID) is running..."
fi
EOF
2.配置脚本关闭服务
在 /usr/local/nginxwebui
目录下创建一个名为 stop.sh
的关闭服务脚本文件,并添加以下内容:
cat > /usr/local/nginxwebui/stop.sh <<'EOF'
#!/bin/bash
SERVER_NAME="nginxWebUI"
PID=$(pgrep -f $SERVER_NAME)
if [ -n "$PID" ]; then
kill -9 $PID
echo "Send shutdown request to ${SERVER_NAME}(${PID}) OK"
else
echo "$SERVER_NAME is not running."
fi
EOF
3.设置脚本权限
chmod +x /usr/local/nginxwebui/start.sh
chmod +x /usr/local/nginxwebui/stop.sh
4.启动和关闭nginxWebUI服务
sh start.sh # 启动 nginxWebUI 服务
sh stop.sh # 关闭 nginxWebUI 服务
四、访问nginxWebUI
浏览器访问 nginxWebUI 平台地址 http://<IP>:8080
,第一次打开会要求初始化管理员账号:

六、升级nginxWebUI
这里将 4.1.1 版本升级为 4.2.4 版本。
1.停止nginxWebUI服务
先停止正在运行的 nginxWebUI 服务:
cd /usr/local/nginxwebui
./stop.sh
2.下载新版jar包
下载最新版的 nginxWebUI 4.2.4 jar包到安装目录下,并重命名为 nginxWebUI-4.2.4.jar
:
wget -O /usr/local/nginxwebui/nginxWebUI-4.2.4.jar https://gitee.com/cym1102/nginxWebUI/releases/download/4.2.4/nginxWebUI-4.2.4.jar
3.修改启动服务脚本
编辑 /usr/local/nginxwebui/start.sh
启动服务脚本文件,将 ver
变量值改为新版本 4.2.4
:
sed -i '/ver=/c\ver=4.2.4' /usr/local/nginxwebui/start.sh
4.启动nginxWebUI服务
修改完成后,重新启动脚本服务:
cd /usr/local/nginxwebui
./start.sh