
通过带公网ip的VPS来部署nginx proxy manager容器,统一给http流量加上ssl证书,实现无端口号访问web服务。
没有vps的,使用群晖,威联通,飞牛OS上的docker部署也是同理,只是需要宽带配备公网地址,ipv4和ipv6都可以,但因为家宽都会封掉默认的443端口,所以需要设置额外的端口号,原理也是一样的。
VPS上先安装好dokcer环境,还没安装docker的推荐使用kejilion大佬维护的多功能脚本实现简单的安装。
curl -sS -O https://raw.githubusercontent.com/kejilion/sh/main/kejilion.sh && chmod +x kejilion.sh && ./kejilion.sh


然后通过命令行启动npm容器。
docker run -d --name=npm -p 80:80 -p 443:443 -p 81:81 -v ~/nginx-proxy-manager/data:/data -v ~/nginx-proxy-manager/letsencrypt:/etc/letsencrypt jc21/nginx-proxy-manager:latest
访问管理界面
浏览器打开 http://你的服务器IP:81
,使用默认凭据登录:
- 邮箱:
admin@example.com
- 密码:
changeme
(首次登录后需立即修改密码)
在此之前,需要先去域名服务商把域名解析到vps的ip上,建立泛解析,*.域名.com 。

接着在api秘钥的页面创建一个token,记录下ID和token。

登陆进来nginx-proxy-manager的管理页面,添加ssl证书

填写Domain Names,打开Use a DNS Challenge,选择服务商,把刚才记录下的ID和token填入id和key,打开最后的同意条款,点击保存。

返回主页添加主机记录,填写二级域名、目标服务器ip和端口号。

选择刚才申请号的范域名证书,把4个开关都打开,最后保存。

最后就可以尝试使用二级域名来访问web服务了,因为vps是有独立的公网ip的,而且可以开放443端口,所以我们访问vps上nginx-proxy-manager的https服务时,可以无需带端口。
