了解本文之前,最好先看前篇:<<微信公众号开发80端口映射解决方案>>。最近公司要搞微信公众号开发,需要解决80端口映射的问题,为了稳定可靠,只好自己搭建ngrok服务端。ngrok 是一个使用go语言编写的反向代理软件,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道,实现内网穿透。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放。
创新互联公司成都网站建设按需求定制设计,是成都网站设计公司,为软装设计提供网站建设服务,有成熟的网站定制合作流程,提供网站定制设计服务:原型图制作、网站创意设计、前端HTML5制作、后台程序开发等。成都网站设计热线:13518219792服务器Centos6.8_x64+windows10_x64
一台有公网ip的服务器
域名解析到服务器。此处拿域名ngrok.XXX.com举例。
关于域名解析,如果你的域名是为此专用的,可以开启泛解析到此服务器上面。如果你的主域名已经在用,你仅仅需要一个二级域名解析到此服务器,并且开启二级域名的泛解析。我选择是第二种,如下图。当然你不做泛解析也可以,自己在本地hosts文件添加记录也可以。
可以选择yum安装,我选择yum安装
yum install -y golang
也可以手动安装,下载地址http://www.golangtc.com/download
下载安装包之后,直接解压,配置环境变量即可。
cd /usr/local/
git clone https://github.com/inconshreveable/ngrok.git
export GOPATH=/usr/local/ngrok/
export NGROK_DOMAIN="ngrok.XXX.com"
cd /usr/local/ngrok
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp server.crt assets/server/tls/snakeoil.crt
cp server.key assets/server/tls/snakeoil.key
vim /usr/local/ngrok/src/ngrok/log/logger.go
log "github.com/keepeye/log4go"
cd /usr/local/ngrok/
GOOS=linux GOARCH=amd64
make clean
make release-server release-client
执行完会在当前目录生成一个bin
文件夹,里面包含了ngrokd
和ngrok
文件;
其中,bin/ngrokd
文件是服务端程序;bin/ngrok
文件是客户端程序(注意上面指定了GOOS
为
64位linux的,所以这个文件是不能在mac
或win
等其他平台跑的,下面将进行说明如何交叉编译)
cd /usr/local/ngrok/
GOOS=windows GOARCH=amd64
make release-client
cd /usr/local/ngrok/
GOOS=darwin GOARCH=amd64
make release-client
server_addr: "ngrok.XXX.com:4443"
trust_host_root_certs: false
/usr/local/ngrok/bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":80"
setsid /usr/local/ngrok/bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":80"
启动服务后会,默认会开启监听80,443,4443。当然80和443端口你可以指定端口,只需要如下启动服务
bin/ngrokd -domain="ngrok.XXX.com" -httpAddr=":8888" -httpsAddr=":8889"
ngrok -config=ngrok.cfg -subdomain=test 80
启动成功如下效果
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。