Ngrok反向代理

传统的反向代理模式如下图

代理服务器与Web服务器IP地址明确,可以轻易地进行数据转发。
但是如果Web服务器IP地址不定,例如Web服务器是ADSL联网,IP地址是不定的,亦即下图模式:

那么传统的反向代理就难以实现,固然可以采用动态DNS的方法根据Web服务器的IP地址,及时修改DNS路由,但是这种方法难以自行实现,势必需要购买这种服务。
因此介绍一个有意思的反向代理,或者叫内网穿透的工具Ngrok。下面介绍部署方法。

服务端(以Ubuntu为例)
可以从github上拉取ngrok的源码自行编译,但需要预先安装go语言环境。
当然也可以直接用包管理器安装

apt-get install ngrok-server

服务端程序用法可参照

ngrokd -h

因为帮助文件太过浅显易懂,不再赘述。启动ngrok的服务端,这里以监听127.0.0.1:8080为例。
因为服务器公网80端口被Apache监听,故使用Apache反向代理Ngrok的8080端口,/etc/apache2/site-available下新建ngrok.conf。


        #配置站点的域名
        ServerName xxx.com
        #配置站点别名
        ServerAlias *.xxx.com
        #配置站点的管理员信息
        ServerAdmin xxx@gmail.com

        #off表示开启反向代理,on表示开启正向代理
        ProxyRequests Off
        ProxyMaxForwards 100
        ProxyPreserveHost On
        #这里表示要将现在这个虚拟主机跳转到本机的8080端口
        ProxyPass / http://127.0.0.1:8080/
        ProxyPassReverse / http://127.0.0.1:8080/

        
            Order Deny,Allow
            Allow from all
        

然后启用配置

a2ensite ngrok.conf
a2enmod proxy proxy_balancer proxy_http
service apache2 restart

客户端
轻量级的ngrok点击即送

留下评论