来源 | macrozheng (ID:gh_433697c99b25)
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镜像;
docker pull jc21/nginx-proxy-manager:latest
-
然后使用如下命令来运行它的容器;
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
-
容器运行成功后,即可在浏览器中访问它的管理页面了,默认账号密码为admin@example.com:changeme,访问地址:http://192.168.3.101:81
使用
接下来就以我的mall电商实战项目的部署为例,演示下nginx-proxy-manager的使用。
项目地址
-
Boot项目:https://github.com/macrozheng/mall
-
Cloud项目:https://github.com/macrozheng/mall-swarm
-
视频教程:https://www.macrozheng.com/video/
项目演示:
静态代理
这里以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配置如下;
location /admin { alias /data/html/admin; index index.html index.htm;}
-
之后把打包好的mall后台管理系统前端代码上传到服务器的/mydata/nginx-pm/data/html目录下并解压,这里我把前台商城系统的代码也同时上传了;
-
之后就能正常访问到mall项目的后台管理系统了,访问地址:http://mall.macrozheng.com/admin/
-
前台商城系统的话只需在原来的自定义Nginx配置中添加如下配置即可;
location /app { alias /data/html/app; index index.html index.htm;}
-
之后就能正常访问到mall项目的前台商城系统了,访问地址:http://mall.macrozheng.com/app/
动态代理
接下来以mall项目的后端API为例来演示下动态代理功能。
-
首先还是需要修改本机的Hosts文件;
192.168.3.101 api.macrozheng.com
-
然后添加一个新的代理主机,将转发的hostname修改为admin-api.macrozheng.com即可;
-
之后就能正常访问到mall项目后端API服务了,访问地址:http://api.macrozheng.com/swagger-ui/
其他功能
-
在配置代理主机的时候,我们可以设置SSL协议并支持自动申请免费的域名证书;
-
通过Access Lists功能可以实现代理主机的Basic认证;
-
通过用户管理功能可以实现用户及权限的管理;
-
通过Audit Log功能可以查看用户的操作日志。
中文版本
如果你用不习惯英文版本的话,还有个中文版本的项目nginx-proxy-manager-zh,中文镜像是基于官方镜像替换前端代码来实现的,所以中文版本的全部功能与官方版本相同。
-
中文镜像的容器运行命令为;
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了,感兴趣的小伙伴可以尝试下!
项目地址
https://github.com/NginxProxyManager/nginx-proxy-manager
推荐阅读:
刚刚,老黄携GB300震撼登场!DeepSeek推理暴涨40倍加速全球最快,26年Rubin问世
10 个 yyds 的文字识别 OCR 开源项目
为什么大厂宁愿用go也不用.net,连微软的TypeScript转译器都用了Go?
2025 年 03 月编程语言排行榜|老古董语言强势回归,原因是相关开发人员退休了~