如何使用Docker搭建NginxWebUI
介绍:NginxWebUI 是一款用于配置Nginx负载均衡和反向代理可视化管理工具。你可以使用这个工具来轻松管理和配置 Nginx,以及查看 Nginx 的运行状态和日志。
第一步:更新源
对于Ubuntu/Debian:
sudo apt-get update -y && sudo apt-get upgrade -y
对于CentOS:
sudo yum update -y && sudo yum upgrade -y
第二步:安装并配置Docker
安装Docker:
curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh ./get-docker.sh
启动Docker:
sudo systemctl start docker
设置Docker在开机时自动启动:
sudo systemctl enable docker
第三步:拉取 NginxWebUI 的 Docker 镜像
可以从 Docker Hub或者阿里云镜像库中拉取 NginxWebUI 的 Docker 镜像。选择以下命令中的其中一个来运行:
docker pull cym1102/nginxwebui:latest
或
docker pull registry.cn-hangzhou.aliyuncs.com/cym19871102/nginxwebui:latest
第四步:运行 NginxWebUI 的 Docker 镜像
创建并启动一个 NginxWebUI 的 Docker 容器,使用以下指令:
docker run -itd \
-v /home/nginxWebUI:/home/nginxWebUI \
-e BOOT_OPTIONS="--server.port=8080" \
--privileged=true \
--net=host \
cym1102/nginxwebui:latest
请注意,需要使用 --net=host
参数来映射本机所有端口,因为内部的Nginx可能使用任意一个端口。
同时,需要映射 /home/nginxWebUI:/home/nginxWebUI
目录,此目录下存放项目所有数据文件,包括数据库、Nginx配置文件、日志、证书等,升级镜像时,此目录可以保证项目数据不丢失。请注意备份。
可以在-e BOOT_OPTIONS
参数可以填充Java启动参数,通过这个参数来修改端口号。--server.port
是占用的端口,如果不填写,那么默认以8080端口启动。
日志默认存放在 /home/nginxWebUI/log/nginxWebUI.log
。
当然也可以使用 docker-compose 来启动 NginxWebUI,配置文件如下:
version: "3.2"
services:
nginxWebUi-server:
image: cym1102/nginxwebui:latest
volumes:
- type: bind
source: "/home/nginxWebUI"
target: "/home/nginxWebUI"
environment:
BOOT_OPTIONS: "--server.port=8080"
privileged: true
network_mode: "host"
第五步:登录网站进行配置
在浏览器中访问 IP:8080
,当第一次打开这个地址时,会被要求初始化管理员账号。
在http参数配置中可以配置nginx的http项目,进行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服务器了. 提供一键同步功能, 可以将某一台服务器的数据配置和证书文件同步到其他服务器中
如果需要通过API调用NginxWebUI的功能,可以访问 IP:8080/doc.html
来查看smart-doc接口页面。
如果忘记了登录密码或没有保存两步验证二维码,可以按照以下步骤来重置密码和关闭两步验证。
- 停止docker容器运行
- 使用找回密码参数运行nginxWebUI.jar,需单独下载nginxWebUI.jar运行此命令
mkdir /home/nginxWebUI/
wget -O /home/nginxWebUI/nginxWebUI.jar http://file.nginxwebui.cn/nginxWebUI-3.6.5.jar
java -jar nginxWebUI.jar --project.home=/home/nginxWebUI/ --project.findPass=true
--project.home
是项目文件所在的目录,使用docker容器时为映射目录。
--project.findPass
是是否打印用户名密码。
运行成功后即可重置并打印出全部用户名密码并关闭两步验证。
原文链接:https://blog.fuyiran.link/Technology/11.html
版权声明:本博客所有文章除特別声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 傅说 (blog.fuyiran.link)