手上的资源 [ol]我家只有一条家用宽带意味着我无法使用 80 、443 端口家里是动态 ip ,带 ipv4 公网公网访问的方法:使用了 tplink 路由器自带的的 tpddns 直接生成的域名端口转发使:由于宽带原生支持公网,所以直接开放的端口目前在用的公网访问方式: 因为 tpddns 的域名有点长用着麻烦,而刚好我阿里云上还有个闲置的域名,目前是直接解析到 tpddns 域名上用了我在阿里云申请了免费的 3 月有效期证书家里 Esxi 开了一个群晖和两个 linux 虚拟机 [/ol] 目前的需求 我想实现在一台 Linux 虚拟机上配置 nginx ,用于代理家里这三台虚拟机上的服务,可以实现 https 访问 目前遇到的问题 [ol]我申请签发的时候使用了闲置的阿里云域名,秒通过,但是配置了 nginx 之后访问不通(有可能是没配置好,或者是因为二次解析的域名,到达 tpddns 域名的时候就失效了,这部分没怎么测试,昨晚刚申请的)tpddns 作为域名申请阿里云签发的时候被拒绝了,原因貌似是因为没有 80 和 443 端口 [/ol] 问题 [ol]我是否可以在一台机器上配置 ngixn 服务用于代理所有家里的服务,因为三台虚拟机的 ip 都不同,如何保证请求是直接发送给 nginx 而不是直接发送到对应的虚拟机上呢我的思路很混乱,不太懂 nginx 的代理流程,目前这种两个域名的情况我应该申请签发哪个域名的证书呢如果签发完成我需要在 nginx 代理中监听的域名是 阿里云的域名还是 tpddns 的域名呢 [/ol]
1. 首先不用想 443 了 。 2. 路由器上应 启用 ddns ,假设是 abc.tpddns.cn , 这个域名会时刻更新为路由器的 ip. 3. 你拥有的 闲置的域名 , 假设是 ,xxx.com , 4. 在 xxx.com 的解析里, 增加个解析, 例如 : 名 *.home , 类型 cname , 值 abc.tpddns.cn . 5. 路由器上增加个 端口映射,例如 543 ,转发到 Linux 虚拟机的内网 ip 上的 543 端口, 6. Linux 虚拟机的 nginx 监听在 543 端口, 可以使用 acme.sh 通过 dns 方式获取 *.home 的泛域名证书。 7. nginx 再增加各种 server_name 的配置, 例如 abc.home.xxx.com 8. 公网上, 可以使用 https://abc.home.xxx.com:543 访问到。
不建议直接暴露服务,都有公网了最好还是加 vpn 回家直接 http 访问。家宽就算改了 443,80 等端口也会被扫到,isp 一旦扫到了就是断网。如果非要对外使用 https ,直接用 acme.sh 的 dns provider 申请泛域名证书,记得有个 callback 的钩子可以续期后自动 reload nginx 。