发布时间:2020-03-02 13:31:23来源:阅读:
作为一个Web开发者,我们有时候会需要临时地将一个本地的Web网站部署到外网,以供他人体验评价或协助调试等等,通常我们会这么做:
找到一台运行于外网的Web服务器。 服务器上有网站所需要的环境,否则自行搭建 将网站部署到服务器上 调试结束后,再将网站从服务器上删除只不过是想向朋友展示一下网站而已,要不要这么麻烦,累感不爱。
安装go lang环境
wget http://www.golangtc.com/static/go/1.7.3/go1.7.3.linux-amd64.tar.gz
常见的不同版本根据下方来匹配(可以到这里下载):
mac: darwin-amd64
ubuntu: linux-amd64
centos: linux-386
或者使用命令安装:
apt-get install golang-go
安装git
apt-get install git
git clone ngrok源码,编译
ngrok源码:http://github.com/inconshreveable/ngrok.git
进入/usr/local目录
git clone http://github.com/inconshreveable/ngrok.git
引入临时的全局环境变量,此次登录有效
# 这个等会编译的时候要用
export GOPATH=/usr/local/ngrok/
# 这个是你自己的域名,可以是二级或三级域名
# 注意,这边ngrok.gabin.top和它的所有子域名都必须指向中转服务器,我最开始就是没有注意这点,导致各种没报错,但是就是不能用
export NGROK_DOMAIN="atecher.net"
替换域名证书,注意到了吗,NGROK_DOMAIN这个环境变量是我们刚刚设置的。
#生成证书
cd /usr/local/ngrok
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.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 rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 5000
#替换证书
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp server.crt assets/server/tls/snakeoil.crt
cp server.key assets/server/tls/snakeoil.key
开始生成服务端执行文件
# 自己注意下,不同操作系统“GOARCH”是不一样的参数,上面也有写到了
GOOS=linux GOARCH=amd64 make release-server
成功之后在/usr/local/ngrok/bin目录下会生成一个ngrokd的文件,这就是服务端的启动执行文件了
生成客户端可执行文件
#--mac
cd /usr/local/ngrok
GOOS=darwin GOARCH=amd64 make release-client
#--window
cd /usr/local/ngrok
GOOS=windows GOARCH=amd64 make release-client
#成功之后在/usr/local/ngrok/bin目录下会生成对应的目录,一般是darwin_amd64和window_64,前一个是mac的,后一个是window的
替换掉引用(国内被墙了,没法用)
vim /usr/local/ngrok/src/ngrok/log/logger.go
# 替换掉import中log的引用,记得删除旧的,别注释了,会报错哈哈
log "github.com/keepeye/log4go"
调试
启动服务端,这边使用的是80端口。一般都需要用这个,原本想用反向代理,发现好像是不行。如果有发现可以的朋友,可以分享一下。如果需要在后台执行的话,参考nohup命令
# 由于NGROK_DOMAIN是临时的环境变量,所以如果要重复使用的话,这个变量最好保存起来,否则下次登录就失效了。
/usr/local/ngrok/bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":80"
启动客户端
先设置好配置文件:同目录下创建一个ngrok.cfg
server_addr: "blog.atecher.net:4443"
trust_host_root_certs: false
# 通过配置文件启动,这边的端口代表的是自己本地调试程序启用的端口,一般是8080
./ngrok -config=./ngrok.cfg -subdomain=blog 80
好了,可以用了。访问以下 blog.atecher.net
PS:
其实主要就是装好go环境,如果想学习新的程序语言,可以考虑下这个最近正火的语言 需要知晓基础的一些知识:环境变量、证书、make(虽然我也不是很懂,总之做多了会有点感觉,就感觉这么做是对的…) 如果没有测试环境可以用的话,可以购买特价的国际域名,一般一年不要十几二十块的,然后申请个像是华为企业云的服务器(本人就申请了一个1块钱15天的试用服务),就可以自己动手尝试了 其实自己没有服务器资源的可以使用国人分享出来的,百度搜索一下,最近看着还蛮多的服务器安全工具下载
329.2K
BIGEMAP离线地图服务器下载
48.9M
C-Lodop云打印服务器下载
9.3M
Cerberus FTP Server Enterprise(FTP服务器软件) v12.0 免费版
28.7M
Titan FTP Server(SFTP服务器软件) v19.00.3537 免费版
50.1M
windows server 2016(服务器操作系统)中文版
5.18G
xp iis(Web服务器)6.0 中文版
13.4M
宝塔面板(服务器运维面板) v7.4.2 破解版
25KB
网络文件服务器(HTTP文件管理系统) 2.3 绿色版
837.6KB
tftpd32(网络服务包) V32.452 官方版
0.52MB
雨燕投屏(投屏办公服务软件) 3.10.16.0 最新版
3.5M
Emby Server下载
101M
FileZilla Server
2.14 MB
HeidiSQL下载
10.1M
WampServer
378.36 MB
securecrt下载
67.7MB
tomcat7.0下载
9.3M
word字体下载
225MB
华为浏览器下载
85.7M
护卫神主机大师下载
222MB
2020-07-13
B500一体机在Windows XP系统下蓝牙驱动下载及安装过程
Intel® Graphics Driver 可能引发本地越权漏洞或拒绝服务
战地3游戏卡如何设置
路由器r3200信号弱,接入设备超过五个直接掉线
Windows 10系统解决wsappx进程占用CPU电脑卡死的方法
联想天逸80A外接有线电视播放有图像无声音的问题解决方案
USB3.0和USB2.0接口的区别和特点
B520一体机在Windows XP系统下摄像头驱动下载及安装过程
键盘上的音量调节键不能使用