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

news2024/10/7 16:26:18

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.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 参数配置中可以配置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.coloradmin.cn/o/1560813.html

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

相关文章

非关系型数据库--------------Redis配置与优化

一、关系数据库与非关系型数据库 1.1关系型数据库 关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上一般面向于记录。SQL语句(标准数据查询语言)就是一种基于关系型数据库的语言,用…

正弦实时数据库(SinRTDB)的使用(10)-数据文件的无损压缩

前文已经将正弦实时数据库的使用进行了介绍,需要了解的可以先看下面的博客: 正弦实时数据库(SinRTDB)的安装 正弦实时数据库(SinRTDB)的使用(1)-使用数据发生器写入数据 正弦实时数据库(SinRTDB)的使用(2)-接入OPC DA的数据 正弦实时数据库(SinRTDB)…

Python 用pygame简简单单实现一个打砖块

# -*- coding: utf-8 -*- # # # Copyright (C) 2024 , Inc. All Rights Reserved # # # Time : 2024/3/30 14:34 # Author : 赫凯 # Email : hekaiiii163.com # File : ballgame.py # Software: PyCharm import math import randomimport pygame import sys#…

JAVA学习笔记21

1.IDEA的使用 1.ctrl B 快速定位到方法 2.ctrl Y 快速删除行 3.ctrl D 快速复制行 4.ctrl H 查看继承的层级关系 5.快速格式化代码 ctrl shift L 6.alt R 快速允许程序 7.ctrl / 快速添加注释 1.包(软件包) 1.1包的三大作用 1.区分相同名字的类 2.当类很多的…

企业数智化进入“加速期”,互联网企业越来越离不开IDC机房

近年来,随着人工智能技术的快速发展和大数据的广泛应用,企业数智化已经进入了“加速期”。越来越多的企业意识到,通过数字化技术和数据分析,可以提高企业的运营效率、降低成本、改善决策能力,进而在激烈的市场竞争中取…

奥比中光Astra SDK相机SDK openni相机成像原理

目录 1.1 成像原理简介 1.1.1 结构光 1.1.2 双目视觉 1.1.3 光飞行时间TOF​ 2.使用手册 参考网址 2.1 产品集成设计 2.2 SDK介绍与使用 2.3 常用API介绍 OPENNI API 2 OpenNI类(OpenNI.h) 1.1 成像原理简介 1.1.1 结构光 结构光&#xff0…

关于POE供电你必须知道的13个问题

你们好,我的网工朋友。 近年来,PoE供电技术的发展势头越来越强劲。 凭借简化用电设备的安装和部署、节能,安全等一系列优势,PoE供电成为无线覆盖、安防监控、以及智能电网等场景的新宠。 在技术交流中,工程商困惑最…

Dijkstra堆优化之蓝桥王国

Dijkstra堆优化 Dijkstra算法是一种用于解决单源最短路径问题的算法,即从图中的一个顶点出发到所有其他顶点的最短路径。然而,处理大图时,常规的Dijkstra算法可能会遇到性能问题。这就是Dijkstra的堆优化算法派上用场的地方。在堆优化版本中…

【小黑送书—第十八期】>>让工作自动化起来!无所不能的Python(文末送书)

随着我国企业数字化和信息化的深入,企业对办公自动化的效率和灵活性要求越来越高。Python作为一种开源的软件应用开发方式,通过提供强大丰富的库文件包,极大地简化了应用开发过程,降低了技术门槛。Python开发有哪些优势、挑战以及…

如何查找合适自己的EI期刊和会议?

大家都知道EI工程索引包含期刊和会议,两者含金量都是比较高的,那么如何才能找到适合自己的EI期刊和会议?ei期刊数量众多,ei国际会议举办次数也是很多的,下面分享几种查找的渠道仅供参考: 渠道一、通过搜索引擎查找&am…

【蓝桥杯第十三届省赛B组】(详解)

九进制转十进制 #include <iostream> #include<math.h> using namespace std; int main() {cout << 2*pow(9,3)0*pow(9,2)2*pow(9,1)2*pow(9,0) << endl;return 0; }顺子日期 #include <iostream> using namespace std; int main() {// 请在此…

【Emgu CV教程】10.11、MatchShapes()比较轮廓的相似度

文章目录 一、函数介绍二、演示1.原始素材2.代码3.运行结果 一、函数介绍 MatchShapes()函数&#xff0c;可以比较两个轮廓的相似度&#xff0c;而且对于旋转、放大、缩小的轮廓都能适用&#xff0c;利用这个函数就能实现最简单的物体检测。函数官方定义如下 public static d…

【机器学习】代价函数

&#x1f388;个人主页&#xff1a;豌豆射手^ &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;机器学习 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进…

Web应急响应

2024年护网将至&#xff0c;最近我将分享一些红蓝对抗的一些技巧&#xff0c;应急响应、信息收集相关的知识概念以及相关技巧。 目录 1. 黑客攻击流程 2. webshell流量特征 1.1.菜刀特征 1.2.冰蝎3.0 &#xff1a; 1.3.冰蝎2.0&#xff1a; 1.4.冰蝎3.11流量特征 1.5.蚁…

申请小程序https证书

背景&#xff1a;目前小程序在开发阶段是必须要使用SSL证书实现服务器https访问&#xff0c;在2017年12月30后http将无法调用微信公众平台接口&#xff0c;需要上线微信小程序的个人或企业&#xff0c;需要办理SSL证书&#xff0c;才能实现网站HTTPS化&#xff0c;让小程序顺利…

用python做一个终身免费的听书工具,一文搞定!!!

你好&#xff0c;小编有多年大厂经验&#xff0c;努力构建通俗易懂的、好玩的编程语言教程。 欢迎关注&#xff01;你会有如下收益&#xff1a; 了解大厂经验拥有和大厂相匹配的技术等 希望看什么&#xff0c;评论或者私信告诉我&#xff01; 一、前言 话说某天&#xff0c…

SCTNet 项目排坑

SCTNet 项目排坑 任务过程记录在旧环境下运行重配环境训练测试速度测试 任务 想跑一下最新的实时分割代码。由于这个项目也是基于mmsegmentation的&#xff0c;所以我想先看看之前那个环境是否能直接适配。不行&#xff0c;我再新建环境。 过程记录 在旧环境下运行 必要工作…

16-代码检查:如何进行静态代码检查?

在做Go项目开发的过程中&#xff0c;我们肯定需要对Go代码做静态代码检查。虽然Go命令提供了go vet和go tool vet&#xff0c; 今天我想给你介绍的golangci-lint&#xff0c;是目前使用最多&#xff0c;也最受欢迎的静态代码检查工具 接下来&#xff0c;我就从golangci-lint…

【数据结构】——树和二叉树相关概念(全网超级详解)

创作不易&#xff0c;家人们来一波三连吧&#xff1f;&#xff01; 前言 世界上最大的树--雪曼将军树&#xff0c;这棵参天大树不是最长也不是最宽&#xff0c;是不是很奇怪&#xff0c;大只是他的体积是最大的&#xff0c;看图片肯定是感触不深&#xff0c;大家可以自己去看…

go入门到精通

初识Go语言 Go语言介绍 Go语言是什么 2009年11月10日&#xff0c;Go语言正式成为开源编程语言家庭的一员。 Go语言&#xff08;或称Golang&#xff09;是云计算时代的C语言。Go语言的诞生是为了让程序员有更高的生产效率&#xff0c;Go语言专门针对多处理器系统应用程序的编…