nginx界面管理工具之nginxWebUI 搭建与使用
一、nginxWebUI
1.nginx网页设置工具
官网地址: http://www.nginxwebui.cn
源码地址:https://git.chihiro.org.cn/chihiro/nginxWebUI
2.功能说明
本项目可以使用WebUI设置nginx的各项功能, 包罗http协议转发, tcp协议转发, 反向代理, 负载平衡, ssl证书自动申请、续签、设置等, 最终天生nginx.conf文件并覆盖nginx的默认设置文件, 完成nginx的最终功能设置。
本项目可管理多个nginx服务器集群, 随时一键切换到对应服务器上进行nginx设置, 也可以一键将某台服务器设置同步到其他服务器, 方便集群管理。
nginx自己功能复杂, 本项目并不能涵盖nginx所有功能, 只能设置常用功能, 更高级的功能设置仍然需要在最终天生的nginx.conf中进行手动编写。
摆设此项目后, 设置nginx再也不用上网各种搜索, 再也不用手动申请和设置ssl证书, 只需要在本项目中进行增删改查就可方便的设置nginx。
3.技术说明
本项目是基于springBoot的web体系, 数据库使用sqlite, 因此服务器上不需要安装任何数据库。
其中orm使用了本人自己开源的sqlHelper项目作为orm, 使用sqlite作为数据库, 项目启动时会释放一个.sqlite.db到体系用户文件夹中, 留意进行备份。
sqlHelper是一个可以像 mongodb 一样使用 sql 数据库的 orm, 解放开发者对sql数据库表结构的维护工作, 支持sqlite, mysql, postgresql三种数据库, 有爱好的可以了解一下 https://gitee.com/cym1102/sqlHelper。
本体系通过Let’s encrypt申请证书, 使用acme.sh脚本进行自动化申请和续签, 开启续签的证书将在每天凌晨 2 点进行续签, 只有凌驾 60 天的证书才会进行续签. 只支持在linux下签发证书。
因为申请证书必须要使用 80 端口, 因此在申请和续签的时候 nginx 将会短暂关闭,请留意。
添加tcp/ip转发设置支持时, 一些低版本的 nginx 大概需要重新编译,通过添加–with-stream参数指定安装stream模块才能使用, 但在ubuntu 18.04下, 官方软件库中的nginx已经带有stream模块, 不需要重新编译. 本体系如果设置了tcp转发项的话, 会自动引入ngx_stream_module.so的设置项, 如果没有开启则不引入, 最大限度优化ngnix设置文件。
二、jar 安装说明
以Ubuntu操作体系为例, 以下命令请使用root账户权限执行
留意:本项目需要在root用户下运行体系命令,极容易被黑客使用,请一定修改密码为复杂密码
1.安装java运行环境和nginx
- apt install openjdk-8-jdkapt install nginx
复制代码 2.下载最新版发行包jar
- wget http://www.nginxwebui.cn/download/nginxWebUI-2.1.6.jar #有新版本只需要修改路径中的版本即可
复制代码 3.启动程序
- nohup java -jar -Xmx64m nginxWebUI-2.1.6.jar --server.port=8080 --project.home=/home/nginxWebUI/ > /dev/null &
复制代码 参数说明 (都是非必填)
-Xmx64m 最大分配内存数
–server.port 占用端口, 默认以 8080 端口启动
–project.home 项目设置文件目次,存放数据库文件,证书文件,日志等, 默认为/home/nginxWebUI/
留意命令最后加一个&号, 表示项目配景运行
三、docker安装说明
本项目制作了docker镜像, 同时包含nginx和nginxWebUI在内, 一体化管理与运行nginx.
1.安装docker容器环境
2.下载镜像
- docker pull registry.cn-hangzhou.aliyuncs.com/cym1102/nginxwebui:2.1.6
复制代码 3.启动容器
- docker run -itd -v /home/nginxWebUI:/home/nginxWebUI -e BOOT\_OPTIONS="--变量名=变量值 --变量名2=变量值2" --privileged=true --net=host registry.cn-hangzhou.aliyuncs.com/cym1102/nginxwebui:2.1.6 /bin/bash
复制代码 留意:
启动容器时请使用–net=host参数, 直接映射本机端口, 因为内部nginx大概使用任意一个端口, 所以必须映射本机所有端口.
容器需要映射路径/home/nginxWebUI:/home/nginxWebUI, 此路径下存放项目所有数据文件, 包罗数据库, nginx设置文件, 日志, 证书等, 升级镜像时, 此目次可保证项目数据不丢失. 请留意备份.
-e BOOT_OPTIONS 参数可填充java启动参数, jar安装教程中的参数均可使用, 可以靠此项参数修改端口号等
日志默认存放在/home/nginxWebUI/log/nginxWebUI.log
docker-compose安装说明
docker-compose.yaml文件如下
- version: '3'
- services:
- nginxwebui:
- image: registry.cn-hangzhou.aliyuncs.com/cym1102/nginxwebui:2.1.6
- container_name: nginxwebui
- restart: always
- volumes:
- - ./data:/home/nginxWebUI
- environment:
- - BOOT_OPTIONS==-Xmx64m
- - TZ=Asia/shanghai
- privileged: true
- network_mode: "host"
复制代码 留意:项目下所有数据储存在yaml文件同目次下的data文件夹中。
使用说明
打开 http://xxx.xxx.xxx.xxx:8080 进入主页
登录页面, 第一次打开会要求初始化管理员账号
进入体系后, 可在管理员管理里面添加修改管理员账号
在http参数设置中可以设置nginx的http项目, 进行http转发, 默认会给出几个常用设置, 其他需要的设置可自由增删改查. 可以勾选开启日志跟踪, 天生日志跟踪设置项, 每天 0 点时刻可天生上一天的日志分析报告. 由于日志文件access.log文件过大, 默认只保留 7 天的log文件, 但分析报告可不停保留.
在 TCP 参数设置中可以设置nginx的steam项目参数, 大多数情况下可不配.
在反向代理中可设置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下
log管理, 在http设置中如果开启了log监控的话, 会每天在这里天生日志分析报告.
远程服务器管理, 如果有多台nginx服务器, 可以都摆设上nginxWebUI, 然后登录其中一台, 在远程管理中添加其他服务器的ip和用户名密码, 就可以在一台呆板上管理所有的nginx服务器了.
提供一键同步功能, 可以将某一台服务器的数据设置和证书文件同步到其他服务器中
- 找回密码
- 如果忘记了登录密码,可按如下教程找回密码
- apt install sqlite3 #安装sqlite3命令
- sqlite3 /home/nginxWebUI/sqlite.db #读取sqlite.db文件
- select \* from admin; #查找admin表
- quit #退出sqlite3
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |