当前位置: 首页 > 科技观察

Nginx可视化神器!一键生成复杂配置,一站式监控管理!

时间:2023-03-12 02:03:30 科技观察

nginxWebUI是一个图形化的nginx配置管理工具。可以使用网页快速配置nginx的各种功能,包括http协议转发、tcp协议转发、反向代理、负载均衡、静态html服务器、ssl证书自动申请、续订、配置等。配置完成后,可以生成nginx.conf文件,同时可以控制nginx使用该文件启动和重载,完成nginx的闭环图形化控制。nginxWebUI还可以管理多个nginx服务器集群,随时一键切换到对应服务器进行nginx配置,或者一键将某台服务器的配置同步到其他服务器,方便集群管理。nginx本身的功能很复杂。nginxWebUI无法覆盖nginx的所有功能,但可以覆盖nginx90%的日常功能使用配置。对于平台未涵盖的nginx配置项,可以使用自定义参数模板在conf文件中生成唯一的配置参数。部署本项目后,配置nginx不再需要在网上搜索各种配置代码,也不再需要手动申请和配置ssl证书。只需要在该项目中进行增删改查,即可方便的配置和启动nginx。技术说明本项目是一个基于solon的web系统,数据库使用h2,所以服务器上不需要安装任何数据库。本系统通过Let'sencrypt申请证书,使用acme.sh脚本自动申请和更新。更新的证书将在每天凌晨2点更新。只有超过60天的证书才会被更新。仅支持在Linux下颁发的证书。.添加tcp/ip转发配置支持时,可能需要重新编译一些低版本的nginx,通过添加--with-stream参数指定安装stream模块即可使用stream模块,但是在ubuntu18.04下,nginx在官方软件库中已经有stream模块,不需要重新编译。如果系统配置了tcp转发项,会自动导入ngx_stream_module.so的配置项。不开启则不导入,将ngnix配置文件优化到最大。jar安装说明以Ubuntu操作系统为例:安装java运行环境和nginxUbuntu:aptupdateaptinstallopenjdk-11-jdkaptinstallnginxCentos:yuminstalljava-11-openjdkyuminstallnginxWindows:下载JDK安装包https://www.甲骨文。com/java/technologies/downloads/下载nginxhttp://nginx.org/en/download.html配置JAVA运行环境JAVA_HOME:JDK安装目录路径:JDK安装目录\bin重启电脑,下载最新发布包jarLinux:mkdir/home/nginxWebUI/wget-O/home/nginxWebUI/nginxWebUI.jarhttp://file.nginxwebui.cn/nginxWebUI-3.4.4.jarWindows:直接用浏览器下载http://file.nginxwebui.cn/nginxWebUI-3.4.4.jar到D:/home/nginxWebUI/nginxWebUI.jar有新版本了,只需要在启动程序的路径修改版本Linux:nohupjava-jar-Dfile.encoding=UTF-8/home/nginxWebUI/nginxWebUI.jar--server.port=8080--project.home=/home/nginxWebUI/>/dev/null&Windows:java-jar-Dfile.encoding=UTF-8D:/home/nginxWebUI/nginxWebUI.jar--server.port=8080--project.home=D:/home/nginxWebUI/参数说明(都是可选的)--server.port占用端口,默认8080端口启动--project.home项目配置ation文件目录,存放数据库文件、证书文件、日志等,默认为/home/nginxWebUI/--spring.database.type=mysql使用其他数据库,不填则使用本地h2数据库,可选mysql--spring.datasource.url=jdbc:mysql://ip:port/nginxwebui数据库url--spring.datasource.username=root数据库用户--spring.datasource.password=pass数据库注意linux命令末尾加一个&号,表示项目后台运行docker里面,综合管理运行nginx安装docker容器环境Ubuntu:apt安装docker.ioCentos:yuminstalldockerpullimage:dockerpullcym1102/nginxwebui:lateststartcontainer:dockerrun-itd\-v/home/nginxWebUI:/home/nginxWebUI\-eBOOT_OPTIONS="--server.port=8080"\--privileged=true\--net=host\cym1102/nginxwebui:latest注意:启动容器时请使用--net=host参数,直接映射本地端口,因为nginx内部可能使用任意端口,所以必须映射机器的所有端口。容器需要映射路径/home/nginxWebUI:/home/nginxWebUI。项目的所有数据文件都存放在该路径下,包括数据、nginx配置文件、日志、证书等,该目录可以保证镜像升级时项目数据不丢失。请注意备份。-eBOOT_OPTIONS参数可以填java启动参数,端口号可以通过该参数修改。--server.port占用端口,不填则默认从8080端口启动。日志默认保存在/home/nginxWebUI/log/nginxWebUI.log。注意:使用docker-compose时,配置文件如下:version:"3.2"services:nginxWebUi-server:image:cym1102/nginxwebui:latestvolumes:-type:bindsource:"/home/nginxWebUI"target:"/home/nginxWebUI"environment:BOOT_OPTIONS:"--server.port=8080"privileged:truenetwork_mode:"host"编译指令使用maven编译打包mvncleanpackage使用docker构建镜像dockerbuild-tnginxwebui:latest。添加启动编辑服务配置vim/etc/systemd/system/nginxwebui.service[Unit]Description=NginxWebUIAfter=syslog.targetAfter=network.target[Service]Type=simpleUser=rootGroup=rootWorkingDirectory=/home/nginxWebUIExecStart=/usr/bin/java-jar/home/nginxWebUI/nginxWebUI.jarRestart=always[Install]WantedBy=multi-user.target执行完systemctldaemon-reloadsystemctlenablenginxwebui.servicesystemctlstartnginxwebui.service说明打开http://xxx.xxx.xxx.xxx:8080进入首页登录页面,第一次打开,你将被要求初始化管理员帐户。进入系统后,可以在管理员管理中添加和修改管理员账号。可以在http参数配置中配置nginxhttp项目,用于http转发,默认会给出几个常用的配置您可以自由添加、删除、修改和查询其他需要的配置。您可以勾选启用日志跟踪以生成日志文件。在TCP参数配置中,可以配置nginx的stream项目参数,但大多数情况下是不匹配的。在反向代理中,可以配置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下的各个配置文件分开,进行远程服务器管理。如果有多台nginx服务器,可以在两台机器上都部署nginxWebUI,然后登录其中一台,在远程管理中添加其他服务器的ip和用户名,就可以在一台机器上管理所有的nginx服务器。提供一键同步功能,可以将某台服务器的数据配置和证书文件同步到其他服务器。接口开发本系统提供http接口调用,打开http://xxx.xxx.xxx.xxx:8080/doc.html可以查看smart-doc接口页面。接口调用需要在http请求头中添加token。获取token需要先在管理员管理中开启用户的接口调用权限,然后通过用户名调用获取token接口获取token和找回密码。如果忘记登录密码或者两步验证没有保存,可以按照下面教程找回密码关闭两步验证停止nginxWebUIpkilljava运行nginxWebUI.jarjava-jarnginxWebUI.jar--project.home=/home/nginxWebUI/--project.findPass=true--project.home为项目文件所在目录--project.findPass为是否打印用户名密码运行成功后可以打印out所有用户名和密码并关闭两步验证开源地址:https://github.com/cym1102/nginxWebUI