Nginx配置其实很简单
不管作为前端还是后端,我们工作中或多或少得接触反向代理,比如代理静态页面或者文件、代理接口解决跨域、配置https、配置缓存和负载等等。而这些需求的实现,我们肯定能接触到Nginx,即使我们使用Caddy等等其它代理方式,但也肯定知道Nginx的存在。如果喜欢命令行,并且熟悉Nginx语法的大牛,可能直接编辑配置文件没什么问题,但是毕竟还是有一些人在命令行里面操作有点麻烦。所以,为什么不试试界面化的Nginx项目nginxWebUI
呢?
nginxWebUI常用功能
- Nginx代理:Nginx最基本的反向代理等等
- https证书管理:管理https证书,自动续签
- 负载:Nginx负载
- 静态网页上传管理:一键上传静态网页,然后配置部署
- 远程服务器:可以管理同样部署
nginxWebUI
的其它机器的代理配置 - 开发接口:支持通过接口进行nginx配置,适合一些二次开发
搭建
1. 配置文件
第一步,我们还是先利用docker-compose
进行搭建。
在我们选定的nginxWebUI
数据存储目录,例如我在/docker/nginxWebUI
目录下,创建docker-compose.yml
文件,并编写脚本:
version: "3.2"
services:
nginxWebUi-server:
container_name: nginxwebui
image: cym1102/nginxwebui:latest
volumes:
- /docker/nginxWebUI/data:/home/nginxWebUI #nginxWebUI数据持久化目录
environment:
BOOT_OPTIONS: "--server.port=8080"
privileged: true
restart: always
network_mode: "host"
- network\_mode: 请使用
host
参数, 直接映射本机端口, 因为内部nginx可能使用任意一个端口, 所以必须映射本机所有端口. - volumes: 容器需要映射路径
/docker/nginxWebUI/data:/home/nginxWebUI
, 此路径下存放项目所有数据文件, 包括数据库, nginx配置文件, 日志, 证书等, 升级镜像时, 此目录可保证项目数据不丢失. 请注意备份. - BOOT\_OPTIONS: 参数可填充java启动参数, 可以靠此项参数修改端口号,
--server.port
占用端口, 不填默认以8080端口启动 - privileged:
privileged
参数是 Docker Compose 配置文件中一个用于设置容器特权模式的选项。将容器设置为特权模式意味着容器内的进程将具有更高的权限,能够执行一些特权操作,例如访问主机的设备或其他系统资源。 - 日志: 日志默认存放在
/docker/nginxWebUI/data/log/nginxWebUI.log
2. 启动
docker-compose up -d
注意:如果只想利用docker搭建,则可以使用以下步骤:
#1.拉取镜像
docker pull cym1102/nginxwebui:latest
#2.启动容器
docker run -itd \
-v /docker/nginxWebUI/data:/home/nginxWebUI \
-e BOOT_OPTIONS="--server.port=8080" \
--net=host \
cym1102/nginxwebui:latest
使用
使用文档
完成上面步骤后,等待检查到服务正常启动后访问IP:8080
登录页面, 第一次打开会要求初始化管理员账号
进入系统后, 可在管理员管理里面添加修改管理员账号
代理配置
http参数配置
在http参数配置中可以配置nginx的http项目,进行http转发,文件大小限制等等, 默认会给出几个常用配置, 其他需要的配置可自由增删改查. 可以勾选开启日志跟踪, 生成日志文件。
代理配置
在反向代理中可配置nginx的反向代理即server项功能, 可开启ssl功能, 可以直接从网页上上传pem文件和key文件, 或者使用系统内申请的证书, 可以直接开启http转跳https功能,也可开启http2协议。
如果有附加额外参数,可以点击设置额外参数,进行添加,但是注意不要加;
,因为这个项目会自动给你加。也可以将这些额外参数设置为模版,然后直接使用。
负载
在负载均衡中可配置nginx的负载均衡即upstream项功能, 在反向代理管理中可选择代理目标为配置好的负载均衡
启用配置
上边我们修改的配置,是不会立即生效的,需要我们自己去检测激活。进入启用配置
。
我们可以进行配置校验
,通过后然后点击替换替换文件
最后重新装载
即可。
我们也可以看到,其实这个项目还有一个好处,它对于每次修改都有一个历史记录,相当于临时建立一个nginx配置文件,然后校验通过后替换真实配置文件,但是会留下历史记录,这样也就给我们如果后悔了想要还原某个版本的配置提供能支持。
其它配置就自己摸索吧,我就简单列一下常用的配置功能。
静态文件快捷上传
在html静态文件上传中可直接上传html压缩包到指定路径,上传后可直接在反向代理中使用,省去在Linux中上传html文件的步骤
证书管理
在证书管理中可添加证书, 并进行签发和续签, 开启定时续签后, 系统会自动续签即将过期的证书, 注意:证书的签发是用的acme.sh的dns模式, 支持阿里云,腾讯云等等,可能需要key。
远程服务器
远程服务器管理, 如果有多台nginx服务器, 可以都部署上nginxWebUI, 然后登录其中一台, 在远程管理中添加其他服务器的ip和用户名密码, 就可以在一台机器上管理所有的nginx服务器了.
提供一键同步功能, 可以将某一台服务器的数据配置和证书文件同步到其他服务器中
接口开发
本系统提供http接口调用, 打开 http://xxx.xxx.xxx.xxx:8080/doc.html 即可查看smart-doc接口页面.
接口调用需要在http请求header中添加token, 其中token的获取需要先在管理员管理中, 打开用户的接口调用权限, 然后通过用户名密码调用获取token接口, 才能得到token
找回密码
如果忘记了登录密码或没有保存两步验证二维码,可按如下教程重置密码和关闭两步验证.
1.停止nginxWebUI进程或停止docker容器运行
2.使用找回密码参数运行nginxWebUI.jar, docker用户需单独下载nginxWebUI.jar运行此命令
java -jar nginxWebUI.jar --project.home=/home/nginxWebUI/ --project.findPass=true
--project.home 为项目文件所在目录, 使用docker容器时为映射目录
--project.findPass 为是否打印用户名密码
运行成功后即可重置并打印出全部用户名密码并关闭两步验证
最后
nginxWebUI
这个项目更新比较频繁,所以我也就列举了一些常用的功能,其它例如密码管理器,日志等等,感兴趣的可以自己摸索。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。