本篇博文,是接着上一篇博文--微信公众平台-本地实时开发调试(基本思路)。
上篇博文介绍了基本思路,本篇博文就介绍具体的操作步骤。
本地启动tomcat,启动自己的项目(我的项目是启动在8080端口,这个可以在tomcat中配置),并且本地访问可用的链接,确保项目在运行中。
ps:我用的是集成开发环境进行的开发,所以我只用在IDE中配置好相关的服务器配置,然后在IDE中启动,就可以启动服务器了,同时还运行了项目,这样就能在IDE中的控制台中就能查看运行状态了。
打开本地的XShell,新建一个链接,配置好隧道,然后通过SSH连接上阿里云的服务器,当然首先确保服务器上面有SSH服务,阿里云服务器Ubuntu服务器是默认带有的,如果你是其它的服务器,请自行查看SSH服务的安装。
我的配置是从服务器的9000端口,将请求转发到我本地的8080端口。
连接上服务器后,可以查看9000端口是否有被占用
发现真的被sshd占用了,表名这个时候已经开启了反向隧道。
服务器上配置nginx,将请求指定请求转发到9000端口。只需要在你的nginx配置中,在监听80端口的server中添加一个转发配置。
然后,重启你的nginx。service nginx restart
验证。
可以看到,我没有将项目部署到阿里云服务器上面,只是在本地开启了一个项目,并且本地项目的服务器监听本地的8080端口,然后在本地和外网服务器上面建立了一个隧道(反向隧道),入口是外网服务器的9000端口,出口是本地的8080端口,而且还配置了nginx,使得将80端口接收到的指定请求转发到本地的9000端口,然后在通过隧道到达我本地的8080端口。这样就成功了。
PS:过程中的所有配置都是最简单的,比如nginx配置转发请求道9000端口,仅仅是做到一个内网穿透的功能,如果有其它需要,还要增加其它的配置项。过程中,那个nginx的配置转发时,使用的localhost,而不是用的真实的服务器ip地址,如果换成ip地址,请求就无法通过隧道了,这个跟隧道的配置有关,因为我们配置隧道时,是配置的只有本地请求才能通过隧道,nginx做的事情不仅是端口转发,而且还把其它主机的请求转化成了本地请求,然后才能通过隧道。
如果有说错的地方,请大家指出来,望加修改,谢谢。