利用Nginx和Putty Tunnel实现本地侦听公网http请求-用以微信Programming
Contents
微信Programming需要指定一个公网的网址,直接在Server上面写代码,或者写完了传上去调试都是极不科学的做法。一来不方便,不直观。二来万一出问题Server挂了那不蛋疼菊紧的。
立马想到通过 SSH 把Server上的请求转发到本地,搜了一下资料,实现很简单,适用于Server为 LINUX 的情况。
本地PUTTY端设定:
Source port: 连上后会在Server开的端口,稍后 Nginx 要把请求代理到这个商品上
Destination: 本地的机器和商品,putty 会把Server过来的请求转到到这个指定的端口上。 (如果本机也是 Linux ,那 putty 都省掉,直接一条 ssh test.com -R 8110:127.0.0.1:8080 搞定) 设定好了之后记得保存 session, 然后连接上Server,设置Nginx。
ServerNginx设定:配置 server 节指定代理规则:
|
|
test.com 替换成你自己的公网域名,保存后记得 restart 一下 Nginx
这样Nginx就会把所有 /weixin 的请求转发到本地 8110 端口,而这个 8110 又是映射到我们本机上的 8080 端口。
本机Node.js 测试脚本
|
|
保存为 server.js 然后执行 node server.js 本机开始侦听 8080 端口,这时浏览器输入 http://127.0.0.1:8080
能看到 hello world 说明本机正常鸟。
然后输入 http://test.com/weixin
应该也能看到 hello world 了。这个方法也可以用来调试支付宝等需要调用公网网址的程序。
如果上面的方法不适合你,刚好我在搜索的时候有发现另一个软件:ngrok ,貌似它是可以提供一个公网网址给你也是映射到本地端口。
Author Klesh Wong
LastMod 2015-04-23