準(zhǔn)備工作
域名解析:
我的在:laradock - nginx - sites - [xxx.conf] 配置域名ngrok.yuling.net 或*.ngrok.yuling.net增加兩條A記錄解析到你的服務(wù)器。這樣你可以使用subdomain的方式凉敲,來實現(xiàn)穿透衣盾。
如:
server {
listen 80;
listen [::]:80;
server_name ngrok.yuling.net *.ngrok.yuling.net;
root /var/www/yellow-croaker/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_pass php-upstream;
fastcgi_index index.php;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fixes timeouts
fastcgi_read_timeout 600;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
location /.well-known/acme-challenge/ {
root /var/www/letsencrypt/;
log_not_found off;
}
error_log /var/log/nginx/apidemo_error.log;
access_log /var/log/nginx/apidemo_access.log;
}
配置:
在laradock添加文件夾,建議叫ngrok爷抓。文件夾下面存放三個文件势决。
如:
目錄結(jié)構(gòu)如下圖所示:
可以看到,有必須的Dockerfile文件废赞,build.sh是編譯ngrok的腳本徽龟,config.yml是客戶端使用的配置文件,下面分別介紹下唉地。
Dockerfile
FROM golang:1.7.1-alpine
ADD build.sh /
RUN apk add --no-cache git make openssl
RUN git clone https://github.com/inconshreveable/ngrok.git --depth=1 /ngrok
RUN sh /build.sh
EXPOSE 8081
VOLUME [ "/ngrok" ]
CMD [ "/ngrok/bin/ngrokd"]
基于golang:1.7.1-alpine這個鏡像來構(gòu)建
build.sh
#!/usr/bin/env bash
export NGROK_DOMAIN="ngrok.yuling.net"
cd /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 device.key 2048
openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp device.crt assets/server/tls/snakeoil.crt
cp device.key assets/server/tls/snakeoil.key
make release-server
GOOS=linux GOARCH=386 make release-client
GOOS=linux GOARCH=amd64 make release-client
GOOS=windows GOARCH=386 make release-client
GOOS=windows GOARCH=amd64 make release-client
GOOS=darwin GOARCH=386 make release-client
GOOS=darwin GOARCH=amd64 make release-client
GOOS=linux GOARCH=arm make release-client
注意需要把上面的NGROK_DOMAIN修改為你自己的域名
構(gòu)建鏡像
有了這兩個文件之后据悔,cd ngrok
可以執(zhí)行:
docker build -t ngrok .
或docker build . -t ngrok
來構(gòu)建鏡像传透,如下圖:
成功狀態(tài):
等執(zhí)行完成之后,可以使用如下命令來啟動:
docker run -it -p 8081:8081 -p 4443:4443 -v /Users/wenyuling/Desktop/Projects/laradock/ngrok/bin:/root/ngrok/bin/ -d ngrok /ngrok/bin/ngrokd -domain="ngrok.yuling.net" -httpAddr=":8081"
同樣的极颓,修改上述的domain
為你自己的域名名同時路徑:/Users/wenyuling/Desktop/Projects/laradock
改成自己的本地路徑
客戶端部分
打開ngrok官網(wǎng):https://dashboard.ngrok.com/get-started朱盐,選擇性登錄后如圖所示:
按步驟1、2菠隆、3兵琳、4依次執(zhí)行,即可骇径。
1躯肌、
下載
2、
解壓
3破衔、
找到下載的目錄清女,在終端執(zhí)行:./ngrok authtoken [你的 token]
我的目錄如圖所示:
4、
最后執(zhí)行:./ngrok http 80
看到如下輸出晰筛,則說明成功了嫡丙。