早上起来你有两个选择:
盖上被子做你未完成的梦||掀开被子完成未完成的梦

Nginx 图形化管理工具

功能说明

本项目可以使用WebUI配置nginx的各项功能, 包括http协议转发, tcp协议转发, 反向代理, 负载均衡, 日志管理和解析, ssl证书自动申请、续签、配置等, 最终生成nginx.conf文件并覆盖nginx的默认配置文件, 完成nginx的最终功能配置.

支持nginx服务器集群批量管理, 可批量发送配置文件, 批量执行重启和重载入的命令.

部署此项目后, 配置nginx再也不用上网各种搜索, 再也不用手动申请和配置ssl证书, 再也不用为了配多个nginx登录n遍服务器了, 只需要在本项目中进行增删改查就可方便的配置nginx和服务器集群。

nginx本身功能复杂, 本项目并不能涵盖nginx所有功能, 但支持配置的功能已经涵盖90%的nginx使用, 更高级的功能配置可根据需要在项目提供的自定义参数中配置.

技术说明

除了nginx的conf可视化配置以外, nginxWebUI还提供以下功能:

  1. 静态网页包可上传并进行统一管理

  2. ssl证书可在线申请并定时续签. 统一对ssl进行管理及部署

  3. 集成nginx效验, 重载, 启动, 停止命令, 可在网页上对nginx运行状态进行操作

  4. 可在一台服务器上远程管理其他nginxWebUI服务器, 可以在一个网址上修改复数的nginx集群配置, 同时提供集群nginx服务运行状态监控功能, 使用邮件进行宕机提醒.

  5. 可对nginx中配置的负载均衡节点进行运行状态监控, 使用邮件进行宕机提醒.

  6. 集成nginx日志解析功能, 可配置是否生成nginx日志及定时对nginx日志进行解析

  7. 可反向导入已有的nginx配置文件, 可快速克隆已有反向代理配置, 可检查反向代理的端口占用.

  8. 提供系统cpu 内存 硬盘运行状态监测

  9. 提供中英文双语切换

    界面示例

    首次登入界面:

首页界面展示:

配置文件界面展示:

开源

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

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

赞(0)
开源学习 相互进步www.likai.tech » Nginx 图形化管理工具
分享到: 更多 (0)

评论 抢沙发