1585378973-u2555069380654495881fm26gp0.jpg

由于家里的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地址。