1分钟
记录使用 Nginx Proxy Manager 替换 Nginx
Nginx 是一款优秀的 HTTP 服务器,同时提供了丰富的功能,其中最常使用的就是反向代理,可以通过配置让我们使用不同的域名在同一个端口访问不同的服务。而 Nginx Proxy Manager 是一个可以通过在 Web UI 中配置内部的 Nginx 实现类似我们所需要的功能的工具。
为什么替换
我部署的服务虽然不多,但部分服务必须 HTTPS,比如 Bitwarden。所以我就通过 Let‘s Encrypt 申请了泛域名证书,于是我所有的服务就都支持了 HTTPS 。但是 Let‘s Encrypt 的证书有效期只有 3 个月,想要继续使用就要定期更新。其实在机器上写个定时任务,周期性续期证书就没问题了,但是我发现我每次更新下来的证书都带有个可爱的后缀-1/-2/-3...
,这样子也不是不能搞,但是太麻烦了。
最近网上冲浪🏄♂️的时候发现了这个工具,它最吸引我的有两点:
- 在 Web UI 中配置就能实现和 Nginx 一样的功能
- 支持 Let’s Encrypt 在线申请
本着折腾的原则,我决定在我的机器上部署一个🔨
替换过程记录
- 关闭原有的 Nginx
因为为了保持和原来的体验一致,那么肯定是要在 :80
/:443
端口进行反代,所以一定要关闭原有的 Nginx。因为我所有的服务都是 Docker 部署的,所以关闭命令很简单
docker stop nginx
- 部署 Nginx Proxy Manager
参考官网教程
- 在 Web UI 中配置
通过http://localhost:81
访问后台配置页面
点击 Proxy Hosts => Add Proxy Host 即可配置反向代理,规则参照原 Nginx 配置文件配置(这里支持泛域名配置)
点击 Save
就完成了第一个域名的配置,此时访问我们的配置的域名,请求就会被发送发位于 198.168.0.2:5000 的服务上。
配置 SSL 证书(可选)
在 SSL Certificates 选项卡中点击 Add Certificate 按钮,可以选择上传自己已有的证书,也可以选择从 Let’s Encrypt 重新申请,这里选择重新申请。
Nginx Proxy Manager 支持无侵入式的 DNS 验证方式申请证书,而且支持多家 DNS 服务商。
如上图,输入域名(支持泛域名)按要求填写自己的 DNS 服务商的 Token/Key 之类的,点击 Save
就完成了第一张证书的申请,接下来就把证书配置到刚刚配置好的 Proxy Host 上吧。
回到 Host 管理,选择要配置的服务,切换到 SSL 选项卡,选择刚申请的域名即可完成配置。
到这里就完成了一个支持 HTTPS 的服务的配置,重复上面的操作(如果申请的泛域名证书后续则不用继续申请证书,只要保证在证书的有效范围即可)就可以完成全站的替换。