nginx界面管理工具之nginxWebUI 搭建与使用

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镜像, 同时包含nginxnginxWebUI在内, 一体化管理与运行nginx.

1.安装docker容器环境

apt install docker.io

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.6container_name: nginxwebuirestart: alwaysvolumes:- ./data:/home/nginxWebUIenvironment:- BOOT_OPTIONS==-Xmx64m- TZ=Asia/shanghaiprivileged: truenetwork_mode: "host"

注意:项目下所有数据储存在yaml文件同目录下的data文件夹中。

使用说明

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

在这里插入图片描述

登录页面, 第一次打开会要求初始化管理员账号

在这里插入图片描述

进入系统后, 可在管理员管理里面添加修改管理员账号

在这里插入图片描述

在http参数配置中可以配置nginx的http项目, 进行http转发, 默认会给出几个常用配置, 其他需要的配置可自由增删改查. 可以勾选开启日志跟踪, 生成日志跟踪配置项, 每天 0 点时刻可生成上一天的日志分析报告. 由于日志文件access.log文件过大, 默认只保留 7 天的log文件, 但分析报告可一直保留.

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

在证书管理中可添加证书, 并进行签发和续签, 开启定时续签后, 系统会自动续签即将过期的证书。

注意: 证书的签发是用的acme.shdns模式, 需要配合阿里云的aliKeyaliSecret来使用. 请先申请好aliKeyaliSecret

在这里插入图片描述

备份文件管理, 这里可以看到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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/780127.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

帆软报表踩坑日记

最近公司项目要是使用报表,公司使用的是帆软这个国产软件,自己也是学习使用,在使用的过程中记一下问题以及解决方式 公司使用的是帆软8这个版本,比较老了。 首先是表格中的扩展,就是当我们根据数据库查询数据然后放到表…

【Vue3源码学习】— CH2.5 reactiveEffect.ts:Vue 3响应式系统的核心

reactiveEffect.ts:Vue 3响应式系统的核心 1. 什么是 reactiveEffect?2. 核心机制2.1 依赖收集(Track)2.2 触发更新(Trigger)2.3 效果范围(effectScope) 3. 源码解析 —— track3.1 …

云服务器16核64G租用优惠价格500元1个月、5168元一年,35M带宽

京东云16核64G服务器租用价格500元1个月、1500元3个月、2585元6个月、5168元一年,配置为16C64G-450G SSD系统盘-35M带宽-8000G月流量 华北-北京。京东云16核64G服务器优惠活动 atengyun.com/go/jd 链接打开如下图: 京东云16核64G服务器租用价格 京东云&a…

SD 修复 Midjourney 有瑕疵照片

Midjourney V6 生成的照片在质感上有了一个巨大的提升。下面4张图就是 Midjourney V6 生成的。 如果仔细观察人物和老虎的面部,细节真的很丰富。 但仔细观察上面四张图的手部细节,就会发现至少有两只手是有问题的。这也是目前所有 AI 绘图工具面临的问题…

【Roadmap to learn LLM】Large Language Models in Five Formulas

by Alexander Rush Our hope: reasoning about LLMs Our Issue 文章目录 Perpexity(Generation)Attention(Memory)GEMM(Efficiency)用矩阵乘法说明GPU的工作原理 Chinchilla(Scaling)RASP(Reasoning)结论参考资料 the five formulas perpexity —— generationattention —— m…

stm32定时器中断函数回调函数

方式一:stm32定时器中断可以直接在硬件中断函数TIM3_IRQHandler执行。 在HAL库中可以注册回调函数,在定时器中断发生时调用注册的函数,这样可以统一接口,大大提高函数可读性,和硬件解耦提高程序可移植性。 使用过程如…

vue中使用图片url直接下载图片

vue中使用图片url直接下载图片 // 下载图片downloadByBlob(url, name) {let image new Image()image.setAttribute(crossOrigin, anonymous)image.src urlimage.onload () > {let canvas document.createElement(canvas)canvas.width image.widthcanvas.height image…

Django屏蔽Server响应头信息

一、背景 最近我们被安全部门的漏洞扫描工具扫出了一个服务端口的漏洞。这个服务本身是一个Django启动的web服务,并且除了登录页面,其它页面或者接口都需要进行登录授权才能进行访问。 漏洞扫描信息和提示修复信息如下: 自然这些漏洞如何修复&#xff0c…

美国裸机云多IP服务器:独享IP,多C段,高速稳定,站群优选!

美国裸机云多IP服务器,近年来在站群运营、网络架构优化等领域逐渐崭露头角,成为许多企业和个人用户的优选方案。那么,这种服务器究竟有何特别之处呢?下面,我们就来详细科普一下。 首先,我们来了解一下什么是裸机云多I…

太阳能发电园区3D可视化:揭秘绿色能源新纪元

在科技飞速发展的今天,绿色能源已成为推动社会进步的重要力量。太阳能发电作为绿色能源的重要代表,正在全球范围内掀起一股清洁能源的革命浪潮。 太阳能发电园区作为集中展示太阳能发电技术和应用的场所,其规模之大、设备之复杂,常…

Linux部分命令

目录 1.文件介绍 2.ls命令 3.目录命令 4.相对路径以及绝对路径 5.命令创建目录(文件夹) 6.which命令 7.find命令 8.grep命令 9.wc命令 10.echo、tail、重定向符 1.文件介绍 和window不同,Linux没有盘路径,所有的文件都存…

VSCode在文件生成添加作者,创建时间、最后编辑人和最后编辑时间等信息

一、安装插件 我使用的是 korofileheader 二、配置文件 左下角点击设置图标—设置—输入"ext:obkoro1.korofileheader"—点击"在setting.json中编辑" 进入后会自动定位到你添加信息的地方 "Author": "tom", "Date": "…

Netty核心原理剖析与RPC实践16-20

Netty核心原理剖析与RPC实践16-20 16 IO 加速:与众不同的 Netty 零拷贝技术 今天的课程我们继续讨论 Netty 实现高性能的另一个高阶特性——零拷贝。零拷贝是一个耳熟能详的词语,在 Linux、Kafka、RocketMQ 等知名的产品中都有使用,通常用于…

uniapp开发App——登陆流程 判断是否登陆,是,进入首页,否,跳转到登录页

一、登陆流程 文字描述:用户进入App,之后就是判断该App是否有用户登陆过,如果有,直接进入首页,否则跳转到登陆页,登陆成功后,进入首页。 流程图如下: 二、在uniapp项目中代码实现 实…

代码随想录算法训练营第二十四天(回溯1)|77. 组合(JAVA)

文章目录 回溯理论基础概念类型回溯模板 77. 组合解题思路源码 回溯理论基础 概念 回溯是递归的副产品,本质上是一种穷举 回溯解决的问题可以抽象为一种树形结构 类型 回溯主要用来解决以下问题 组合问题:N个数里面按一定规则找出k个数的集合切割问…

如何使用Docker打包构建Java项目然后部署发布?

前言 今天我们来讲下如何使用Docker打包构建Java项目并且完成部署发布。 前期准备,需要安装好docker。 以及一个需要安装好Maven的镜像,可以参考下面的文章。 构建一个包含mvn命令的Java 17基础镜像-CSDN博客 一、打包构建Java项目镜像 1、创建Jav…

【力扣】300. 最长递增子序列(DFS+DP两种方法实现)

目录 题目传送最长递增子序列[DFS 方法]DFS方法思路图思路简述代码大家可以自行考虑有没有优化的方法 最长递增子序列[DP]方法DP方法思路图思路简述代码方案 题目传送 原题目链接 最长递增子序列[DFS 方法] DFS方法思路图 思路简述 对于序列中的每一个数字只有选择和不选择两…

电脑开机慢怎么办,电脑开机慢解决方法

新电脑呢,开机速度特别快。有很多人会感觉到电脑拿回家以后,一按开机键,六秒七秒,这个电脑就启动起来了,但是用一段时间以后呢,他会明显感觉到这个开机的速度呢,会特别慢,可能从六秒…

OSX-02-Mac OS应用开发系列课程大纲和章节内容设计

本节笔者会详细介绍下本系统专题的大纲,以及每个专题章节的组织结构。这样读者会有一个全局的概念。 在开始前还是在再介绍一下下面这个框架图,因为比较重要,在这里再冗余介绍一下。开发Apple公司相关产品的软件时,主要有两个框架…

kubernetes(K8S)学习(六):K8S之Dashboard图形界面

K8S之Dashboard图形界面 一、Dashboard简介二、k8s安装Dashboard(1)下载Dashboard镜像(可选)(2)根据yaml文件创建资源(3)查看资源(4)生成登录需要的token(5)使用火狐 / 搜狗浏览器访问(个人用的搜狗) 一、Dashboard简介 官网&…