我的博客地址:http://xxxzhi.github.io/2015/01/27/apache-proxy-intranet-through/
因为在学校,内网无法被外网访问。实验室租了一个阿里云服务器,但是阿里云服务器没有GPU,我那些GPU程序不能够在阿里云上面使用。之能够在自己带有GPU的本机上面使用。但是自己的本机外网又不能够访问,之能够想办法了。
内网穿透方法
使用大端口号来访问教育网服务器
最开始的时候我发现从外网能够ping同我内网电脑的ip,然后我就开始在网上找原因,发现教育网作服务器只是被封了一些端口,有的大一点的端口还是能够使用,比如说19999。最开始我就使用这种方式了,用自己电脑做服务器,然后使用19999端口,而不是使用80,8080之类的端口。
但是突然有一天,问题出现了,什么端口都不能够访问了,从外网ping一下我电脑,嘿!不行了,不知道他什么情况了。显然之前的方法是不行了,之能够采用另外的办法。
nat123内网穿透
在我发现有问题的时候,很悲催,服务第二天需要被使用,我必须去整好它。上网查找,发现内网穿透的工具nat123。
nat123需要安装他的一个软件,但是那软件必须在windows下面使用(这也是够悲催的),还好它提示可以在linux下面装个虚拟机来安装windows,然后用那个虚拟机机windows安装nat123。好了,总算是行了。具体使用方法和步骤可以进入这个网站查看:http://www.nat123.com/pages_4_5.jsp
ngrok
这个是很多网友推荐的,很多人用它来做微信公众帐号的服务器链接(微信公众帐号之能够用80端口)。它是一个内网穿透神器,可以免费使用一个链接。具体操作可看:https://ngrok.com/
apache热备份
因为在使用内网穿透的时候,都依赖了一个软件,那个软件运行在内网中。但是因为使用了一个软件,这样就存在了一定的风险,万一不小心,那软件挂了,而且我还不知道,这个就麻烦了,考虑到存在多种内网穿透的方式,立刻就想到了将这些穿透的方式综合起来。也很庆幸,我有一台暴露在外网的阿里云服务器。
这样很容易想到,用一个代理接口使用,另外一个代理接口备用,如果使用的代理接口出现问题,则立刻用备用的接口。保证整个链接不会出现问题。整的来说如下图所示:
图中我没有标记备用的接口,随便使用哪一个都可以。恰好,apache逆向转发的热备份可以上面的要求。下面是一段编辑代码:
ProxyRequests Off
<Proxy balancer://proxy>
Order Deny,Allow
Allow from all
BalancerMember http://testsdf.ngrok.com/test
BalancerMember http://test.nat123.net:41239/test status=+H
ProxySet lbmethod=bytraffic
</Proxy>
ProxyPass /test balancer://proxy/
上述代码中的接口是用不了的,只是一个demo,用来说明,具体使用方法可以百度apache热备份。其中ngrok的是作为主要使用的,nat123作为备份使用的(用status=+H标记)。
使用这种方式,一下子就解放了我对于内网穿透的关注,基本不用再担心内网穿透的软件会突然间死掉。
这其实算是apache逆向代理的另类用法吧,一般用的比较多的都是使用apache+tomcat进行负载均衡,我想到用这种方式实现穿透接口的备份。多见识不同的技术,并且多思考技术的扩展使用,或许能够给人带来意想不到的收获。
有的东西,可以永远不曾拥有,但不可以有片刻的时光不去追求