前言
本文介绍一下NginxWebUI
,通过这款工具我们可以轻松的以图形化方式来配置我们的Nginx
的各项功能,包括HTTP
协议转发,TCP
协议转发,反向代理,负载均衡,SSL
证书自动申请、续期。NginxWebUI
可以部署在Ubuntu
、CentOS
、Windows
等各个平台,可以通过本地部署或者通过Docker镜像来部署,其中Docker
部署是最为简单的,只需要拉取镜像、创建并启动容器,接下来将演示如何使用Docker
来部署NginxWebUI
。
环境
系统:CentOS 7
Docker:20.10.11
拉取镜像
docker pull cym1102/nginxwebui:latest
创建并启动容器
大家可以根据自己的习惯来自定义nginxWebUI容器与宿主机的映射目录
这段创建容器命令使用了--net=host
,直接映射本机端口, 因为内部nginx可能使用任意一个端口, 所以必须映射本机所有端口.
docker run -d -v /mydata/nginxWebUI:/home/nginxWebUI -e BOOT_OPTIONS="--server.port=8080" --privileged=true --net=host cym1102/nginxwebui:latest
但是本人一般只用得到80端口和443端口,而nginxWebUI也要用到8080端口,这里我以端口映射的方式来监听:-p 80:80 -p 443:443 -p 8080:8080
自定义端口映射就会有局限性,在配置中你如果代理到其它端口就无法监听到了,所以如果你想端口随意监听请用上面那条命令,如果和我一样只用得到80和443那就请用下面这条命令
docker run -itd -v /mydata/nginxWebUI:/home/nginxWebUI -e BOOT_OPTIONS="--server.port=8080" --privileged=true -p 80:80 -p 443:443 -p 8080:8080 cym1102/nginxwebui:latest /bin/bash
注意:
容器需要映射路径/mydata/nginxWebUI:/home/nginxWebUI, 此路径下存放项目所有数据文件, 包括数据库, nginx配置文件, 日志, 证书等, 升级镜像时, 此目录可保证项目数据不丢失. 请注意备份.
-e BOOT_OPTIONS 参数可填充java启动参数, 可以靠此项参数修改端口号, "--server.port 占用端口", 不填默认以8080端口启动
日志默认存放在/mydata/nginxWebUI/log/nginxWebUI.log
查看容器
docker ps
容器正常启动
访问后台管理
由于创建容器的时候我的容器端口参数--server.port=8080
设置的为8080,所以我们就要使用服务器IP+8080端口就可以访问到后台。
例如我的服务器IP:192.168.223.140
,那我就访问192.168.223.140:8080
,就会进入到以下界面,第一次进入后台需要设置用户名和密码:
设置完用户名和密码后直接登录即可:
这里我们成功登录到后台:
在本地中可以配置Nginx基本参数、http参数、Stream参数、反向代理(server)参数、负载均衡。
例如:这里演示配置反向代理(server)参数
代理服务器80端口到服务器的8080端口进行测试
提交配置
启动配置
左边是生成的nginx配置,右边才是nginx的真正配置文件
替换文件
要想我们的配置生效,就需要将生成的nginx配置替换到真正的nginx配置文件中,这里很简单,只需要点击一下替换文件就可以进行替换了,而且替换后会自动备份原文件配置。启动Nginx
这里有多种启动方案,如果启动失败可以切换其它方案,停止nginx也有多种方案,这里不一一演示。
测试配置
上面我们将80端口代理到8080端口,这样我们访问80端口会直接来到nginxWebUI的后台。
浏览器访问http协议默认就是80端口可以不用加,这里为了直观展示还是加了
效果:
可以看到我们的配置文件生效了,访问80端口被代理到服务器的8080端口。
最后
这里只展示了反向代理功能,其它功能的使用都差不多一样,大家可自行测试。
nginx本身功能复杂, 这个项目并不能涵盖nginx所有功能, 只能配置常用功能, 更高级的功能配置仍然需要在最终生成的nginx.conf中进行手动编写。