This website requires JavaScript.

如何用阿里云服务实现微信公众号本地调试?

2020年07月17日 11时22分 字数 1252 阅读 12 喜欢(0) 评论(0) 标签 小程序

众所周知,做微信公众号开发时,调试需要接收来自腾讯的服务器请求。因为我们的开发服务器都是在内网,所以腾讯的服务器请求无法通过互联网请求到自己的内网服务器上,所以就需要ngrok做一个内网穿透。

如果你刚好有自己的服务器,又想尝试自己折腾一番,可以参照以下资料做ngrok内网转发。我也是按照下面的资料自己搭建成功的,而且写的比较详细。强烈推荐。

参考资料:
https://blog.csdn.net/diaobatian/article...
https://www.jianshu.com/p/f5c2a55e77bd

如果你没有自己的服务器,又需要做稳定的内网穿透服务,可以选择收费的。为了避免广告嫌疑,而且我也没用过,所以就不做推荐了。

我在搭建的过程中,受限于环境,因为自己比较喜欢折腾。我的nginx和ngrok不在同一个服务器,我也把它搭建成功了,之所以能搭建成功,首先得理解ngrok+nginx的数据传输过程。

image.png

黑色箭头表示请求、灰色箭头表示响应数据。

如果理解不了这个,那么nginx+ngork分开两台服务器时,就会出错,无法实现。

ngrok是用go语言写的,所以需要云服务器安装go语言的环境。
按上面的资料安装完成后,启好ngrok服务后,我本机的客户端一直无法连上ngrok服务。

多次尝试后才知道,腾讯到nginx走的http请求,nginx到ngrok走还是http请求,而ngrok到本机,以及本机回传给ngrok。走的却不是http请求,不要问我为什么知道,因为我自己搭建的过程中测试,用nginx转发请求到ngrok的tunnelchannel结果是无法连通。

后来用了一个办法,将接收请求的域名和响应请的域名分开。怎么操作呢?

比如我现在的域名是example.com.

我响应请求的域名设置的是ngrok.example.com。

接收请求的域名是*.ngrok.example.com。

这块一定要区别开。因为我用ngrok.example.com:4443启动客户端时,会去找对应域名的ip,如果没分开当然好说,一旦分开后,如果这两个域名ip不一样,而你解析成一样了,那么将会带来灾难。

两个解决办法,一个就是将ngrok.example.com解析到ngrok的服务地址上。

另外一个办法就是将ngrok.example.com对应的ip写到自己的host里面。这个办法测试过可以用,上面那办法是我想的,没有测试过,有兴趣的朋友可以测试一下。

文章记录就到这了,如果你在搭建过程中遇到什么问题,可以加我的微信:baidu_google。我将在力所能及的范围内帮你解决。

赞赏支持

微信赞赏码

支付宝赞赏码

相关推荐

暂无推荐文章

扫码关注”隔壁老易“