众所周知,我们微信开发过程会遇到以下两个场景:
我们可以使用一系列内网穿透映射的工具,可以在公网访问本地开放的程序,(无论是自己搭建还是使用其他产品 都适用)
如果是自己搭建或者使用付费的内网穿透工具,那么隧道域名将可以固定,我们在以下两个地方配置为获取到的内网域名,微信将会把所有请求 转发到 我们本地的这个穿透域名上,就可以实时调试了
这里在使用一些免费内网穿透产品遇到的问题,并不是所有免费内网穿透都有此问题,记录此篇文章是增加一种程序思维。解决问题的思路。
我使用的工具,分配的免费域名,会不定期变动,如第一次分配为siamA.xxxx.com
可能一个小时后会变成siamB.xxxx.com
这个时候就不适用我们上面说的这种,直接配置穿透域名在微信后台 因为需要反复修改,比较麻烦
我这里的做法是:提前把业务以后上线的域名准备好,部署在服务器,通过转发
再转发到穿透域名。
如果内网穿透域名变化,只需要在服务器修改一次内网域名(此步骤可以通过脚本,实现自动切换 非本篇文章思路重点内容) 不需要反复去登录微信后台修改授权域名。(特别是登录微信公众号需要公司领导扫码的情况)
以下为nginx转发配置文件
location /
{
expires 12h;
if ($request_uri ~* "(php|jsp|cgi|asp|aspx)")
{
expires 0;
}
proxy_pass http://siamC.xxxx.com;
proxy_set_header Host siamC.xxxx.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
#持久化连接相关配置
#proxy_connect_timeout 30s;
#proxy_read_timeout 86400s;
#proxy_send_timeout 30s;
#proxy_http_version 1.1;
#proxy_set_header Upgrade $http_upgrade;
#proxy_set_header Connection "upgrade";
add_header X-Cache $upstream_cache_status;
#Set Nginx Cache
add_header Cache-Control no-cache;
}