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天的试用服务),就可以自己动手尝试了 其实自己没有服务器资源的可以使用国人分享出来的,百度搜索一下,最近看着还蛮多的搭建自己的git服务器
07-08
服务器在主机外接SCSI卡连接SureSCSI310R阵列柜后,原系统无法正常启动。
07-01
CentOS 7.0安装LAMP服务器(PHP+MariaDB+Apache)
06-07
CentOS7安装配置PostgreSQL数据库服务器
06-20
Linux smbd Samba服务器程序命令详解
06-28
T168 G7服务器板载Intel 82574L和82579LM网卡指示灯状态说明
06-30
T270 G5服务器liunx系统运行过程报“nautilus崩溃”错误的原因?
07-18
TR260 G2服务器内存DIMM安装配置和内存插的槽分布
06-23
TR280服务器是否支持USB光驱启动进行系统安装?
06-26
Ubuntu 14.04安装Pritunl VPN服务器(带控制面板)
06-09
Zabbix3.0监控Apache2.4服务器状态
07-17
中信银行网银打开提示服务器通讯失败
06-21
联想万全R520 G7服务器系统用户手册V1.0
06-08
搭建nginx gunicorn mysql环境部署django应用
04-04
ActiveMQ基于zookeeper的主从(levelDB Master/Slave)搭建
07-11
CentOS 6.x 上搭建docker
07-12
CentOS上用Squid搭建HTTP代理小结
02-27
Centos7下Etcd集群搭建
07-07
Linux 的系统服务及其配置
07-07
两台或多台智享无线搭建WDS方法
06-22
服务器安全工具(服务器安全防护软件) 1.2.2.0 免费绿色版
329.2K
下载BIGEMAP离线地图服务器(离线地图开发者工具) v15.4.0.0 破解版
48.9M
下载C-Lodop云打印服务器(云打印工具)v4.115官方版
9.3M
下载Cerberus FTP Server Enterprise(FTP服务器软件) v12.0 免费版
28.7M
下载Titan FTP Server(SFTP服务器软件) v19.00.3537 免费版
50.1M
下载tomcat7.0 (Web 应用服务器)官方版
9.3M
下载windows server 2016(服务器操作系统)中文版
5.18G
下载网络文件服务器下载
837.6KB
下载tftpd32(网络服务包) V32.452 官方版
0.52MB
下载word字体(word字体服务软件) 2021 免费版
225MB
下载雨燕投屏(投屏办公服务软件) 3.10.16.0 最新版
3.5M
下载Emby Server下载
101M
下载FileZilla Server中文版 v0.9.60.0
2.14 MB
下载HeidiSQL下载
10.1M
下载WampServer(php集成环境安装包)下载 v3.0.6中文
378.36 MB
下载securecrt下载
67.7MB
下载xp iis下载
13.4M
下载华为浏览器下载
85.7M
下载宝塔面板下载
25KB
下载护卫神主机大师下载
222MB
下载