前言
最近在对接一个公共平台的api,在平台中配置我们服务的地址,为了方便本地调试,在自己的阿里云服务器上搭建了ngrok作为代理,访问我本地部署的服务,然后就行调试。
一、环境准备
二、安装
2.1 安装go
apt-get install golang # 验证 go verison
|
2.2 准备域名
在阿里云上配置你的域名解析,直接配置个二级域名就行
2.3 搭建ngrok
2.3.1 安装
# 获取源码 git clone https://github.com/inconshreveable/ngrok.git cd ngrok # 生成ssl证书 export NGROK_DOMAIN="上面阿里云上面配置的域名" openssl genrsa -out base.key 2048 openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out base.pem openssl genrsa -out server.key 2048 openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -out server.csr openssl x509 -req -in server.csr -CA base.pem -CAkey base.key -CAcreateserial -days 10000 -out server.crt # 替换证书 cp base.pem assets/client/tls/ngrokroot.crt # 编译 make release-server release-client # windows 客户端 GOOS=windows GOARCH=amd64 make release-client # mac 客户端 GOOS=darwin GOARCH=amd64 make release-client # 编译后的相关命令都在bin目录下
|
2.3.2 启动ngrok-server
./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="上面阿里云配置的域名" -httpAddr=":8081" -httpsAddr=":8082" # 上面的端口号可以自己选择,阿里云的话,需要在安全组中开放这两个端口,同时ngrokd会开放4443端口跟客户端通信,这个端口也开放出来
|
2.3.3 启动客户端(以windows为例)
# exe 同级目录,新建ngrok.cfg文件,内容如下 server_addr: "上面阿里云配置的域名:4443" trust_host_root_certs: false
|
./ngrok.exe -config=ngrok.cfg -log=ngrok.log -subdomain=自定义名称 8080 # 自己要代理的服务端口
|
三、补充
- 调试的时候ngrokd不支持 & 后台运行,可以用screen
- 如果域名变了,重新生成证明,重新编译