由于家里的80和443端口均已被封,只能寻求阿里云或腾讯云等第三方云主机提供80和443端口的转发。
除了FRP简单粗暴的转发方式以外,NGINX也是一种可行方式。
但NGINX有两个问题,一个是当家里的公网地址变动之后,DDNS解析依然还是原来的IP地址,导致后端502。
另外一个就是每个增加/改动一个子域名就要在NGINX上增加/修改一次域名配置文件,非常的麻烦。(关于这个问题的解决方案,请参考这里。)
该方案比较简单,要解决NGINX反向代理域名不会刷新IP的问题,在conf中添加下面的配置即可:
location / {
resolver 114.114.114.114 valid=5s;
set $upstream "https://<后端地址>:<端口号>";
proxy_pass $upstream;
}
114为DNS,valid为有效时间。
至于为什么要使用set,因为每次用户请求访问时set都会被执行一次,顺带更新NGINX内的域名IP地址。