Nginx是一款非常流行的Web服务器,作为后端程序员我们会经常使用到它。但是去服务器上手动修改Nginx配置确实是一件麻烦的事情,今天给大家分享一款Nginx可视化管理工具
nginx-proxy-manager
,能彻底解放你的双手!
简介
nginx-proxy-manager
是一款Nginx可视化管理工具,具有强大的用户界面,目前在Github上已有25k+star
。 使用它你无需深入了解Nginx,即可实现请求代理、自动申请SSL证书等功能。
它具有如下特性:
- 具有美观而且安全的用户管理界面。
- 无需了解任何关于Nginx的知识,即可实现请求代理、重定向、流媒体等功能。
- 能自动申请免费的SSL证书并自动续期。
- 可以通过Access Lists和Basic认证实现主机的安全访问。
- 具有用户、权限管理,日志审计功能。
安装
使用Docker来安装
nginx-proxy-manager
是非常方便的,这里将采用此种方式来安装。
- 首先使用如下命令下载它的Docker镜像;
bash
docker pull jc21/nginx-proxy-manager:latest
- 然后使用如下命令来运行它的容器;
bash
docker run -p 80:80 -p 81:81 -p 443:443 --name nginx-proxy-manager \
-v /mydata/nginx-pm/data:/data \
-v /mydata/nginx-pm/letsencrypt:/etc/letsencrypt \
-d jc21/nginx-proxy-manager:latest
- 容器运行成功后,即可在浏览器中访问它的管理页面了,默认账号密码为
[email protected]:changeme
,访问地址:http://192.168.3.101:81
使用
接下来就以我的mall电商实战项目的部署为例,演示下nginx-proxy-manager
的使用。
这里简单介绍下mall项目,mall项目是一套基于
SpringBoot3
+ Vue 的电商系统(Github标星60K),后端支持多模块和2024最新微服务架构
,采用Docker和K8S部署。包括前台商城项目和后台管理系统,能支持完整的订单流程!涵盖商品、订单、购物车、权限、优惠券、会员、支付等功能!
项目地址
- Boot项目:github.com/macrozheng/...
- Cloud项目:github.com/macrozheng/...
- 教程网站:www.macrozheng.com
项目演示:
静态代理
这里以mall电商实战项目的后台管理系统和前台商城系统的部署为例来演示下静态代理功能。
-
首先我们需要修改本机的Hosts文件,我这里部署
nginx-proxy-manager
的服务器地址为192.168.3.101
;192.168.3.101 mall.macrozheng.com
-
这里我们先来部署mall项目的后台管理系统,点击
Hosts->Proxy Hosts->Add Proxy Host
来添加代理主机;
- 在
Details
中设置好域名和转发的服务器信息;
- 由于我们想在同一个域名下通过目录来区分不同的项目,这里还需在
Advanced
中添加自定义的Nginx配置;
- 具体的Nginx配置如下;
bash
location /admin {
alias /data/html/admin;
index index.html index.htm;
}
- 之后把打包好的mall后台管理系统前端代码上传到服务器的
/mydata/nginx-pm/data/html
目录下并解压,这里我把前台商城系统的代码也同时上传了;
- 之后就能正常访问到mall项目的后台管理系统了,访问地址:mall.macrozheng.com/admin/
- 前台商城系统的话只需在原来的自定义Nginx配置中添加如下配置即可;
bash
location /app {
alias /data/html/app;
index index.html index.htm;
}
- 之后就能正常访问到mall项目的前台商城系统了,访问地址:mall.macrozheng.com/app/
动态代理
接下来以mall项目的后端API为例来演示下动态代理功能。
-
首先还是需要修改本机的Hosts文件;
192.168.3.101 api.macrozheng.com
-
然后添加一个新的代理主机,将转发的hostname修改为
admin-api.macrozheng.com
即可;
- 之后就能正常访问到mall项目后端API服务了,访问地址:api.macrozheng.com/swagger-ui/
其他功能
- 在配置代理主机的时候,我们可以设置SSL协议并支持自动申请免费的域名证书;
- 通过
Access Lists
功能可以实现代理主机的Basic认证;
- 通过
用户管理
功能可以实现用户及权限的管理;
- 通过
Audit Log
功能可以查看用户的操作日志。
中文版本
如果你用不习惯英文版本的话,还有个中文版本的项目
nginx-proxy-manager-zh
,中文镜像是基于官方镜像替换前端代码来实现的,所以中文版本的全部功能与官方版本相同。
- 中文镜像的容器运行命令为;
bash
docker run -p 80:80 -p 81:81 -p 443:443 --name nginx-proxy-manager \
-v /mydata/nginx-pm/data:/data \
-v /mydata/nginx-pm/letsencrypt:/etc/letsencrypt \
-d chishin/nginx-proxy-manager-zh:release
- 使用了一下,汉化还是挺完整的。
总结
今天给大家分享了一款Nginx可视化管理工具,界面清新优雅,用起来也很方便!有了它你无需了解过多的Nginx知识,就可以快速使用Nginx了,感兴趣的小伙伴可以尝试下!