新聞中心
說(shuō)明
了解本文之前,請(qǐng)先閱讀前兩篇博文。不然會(huì)感覺(jué)不知所云。本文主要是在前兩篇基礎(chǔ)上進(jìn)行發(fā)散思維擴(kuò)展及本博主遇到的一些問(wèn)題。希望對(duì)其他人有幫助,讓你少走彎路。
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到靖邊網(wǎng)站設(shè)計(jì)與靖邊網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:做網(wǎng)站、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋靖邊地區(qū)。
nginx端口轉(zhuǎn)發(fā)
如果服務(wù)器80
端口已經(jīng)被占用了,可以利用nginx
進(jìn)行端口的轉(zhuǎn)發(fā),加上如下配置即可:
vim /usr/local/nginx/conf/vhost/ngrok.XXX.com.conf
內(nèi)容如下:
upstream ngrok { server 127.0.0.1:8888; # 此處端口要跟 啟動(dòng)服務(wù)端ngrok 時(shí)指定的端口一致 keepalive 64; } server { listen 80; server_name *.ngrok.XXX.com; access_log /data/wwwlogs/ngrok.XXX.com_access.log; error_log /data/wwwlogs/ngrok.XXX.com_error.log; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host:8888; # 此處端口要跟 啟動(dòng)服務(wù)端ngrok 時(shí)指定的端口一致 proxy_set_header X-Nginx-Proxy true; proxy_set_header Connection ""; proxy_pass http://ngrok; } }
重啟nginx
service nginx reload
關(guān)于ngrok服務(wù)端
/usr/local/ngrok/bin/ngrokd -domain="ngrok.XXX.com" -httpAddr=":8888" -httpsAddr=":8889"
# domain填寫剛才生成證書時(shí)的 NGROK_DOMAIN
# http和https端口可以自己指定,這里不采用80端口,是因?yàn)槠渌绦蛞呀?jīng)占用了,端口轉(zhuǎn)發(fā)在上面nginx已經(jīng)配置完成
# 如果想要后臺(tái)啟動(dòng),執(zhí)行以下命令(后臺(tái)啟動(dòng)有多種方法,選擇其一即可)
nohup /usr/local/ngrok/bin/ngrokd -domain="ngrok.XXX.com" -httpAddr=":8888" -httpsAddr=":8889" > /dev/null 2>&1 &
# 如果想要開(kāi)機(jī)啟動(dòng),在rc.local中添加以下內(nèi)容,具體內(nèi)容請(qǐng)根據(jù)自己情況自行調(diào)整
vim /etc/rc.d/rc.local
/usr/local/ngrok/bin/ngrokd -domain="ngrok.XXX.com" -httpAddr=":8888" -httpsAddr=":8889" > /var/log/ngrok.log &
關(guān)于ngrok客戶端
你編譯出來(lái)的客戶端和服務(wù)端是配套使用的,你可以把你的客戶端分享給別人使用,別人只能連接你的服務(wù)器,別的服務(wù)器是連接不上的。
確保linux版ngrok
有執(zhí)行權(quán)限
chmod +x ngrok
在ngrok
程序的同級(jí)目錄下,編寫配置文件
vim ngrok.cfg
內(nèi)容如下:
server_addr: "ngrok.XXX.com:4443" trust_host_root_certs: false tunnels: test: subdomain: "test" #定義服務(wù)器分配域名前綴 proto: http: 80 #映射端口,不加ip默認(rèn)本機(jī) https: 80 web: subdomain: "web" #定義服務(wù)器分配域名前綴 proto: http: 192.168.1.100:80 #映射端口,可以通過(guò)加ip為內(nèi)網(wǎng)任意一臺(tái)映射 https: 192.168.1.100:80 web1: hostname: "ngrok.XXX.com" proto: http: 80 web2: hostname: "XXX.com" proto: http: 80 ssh: remote_port: 50001 #服務(wù)器分配tcp轉(zhuǎn)發(fā)端口,如果不填寫此項(xiàng)則由服務(wù)器分配 proto: tcp: 22 #映射本地的22端口 ssh2: #將由服務(wù)器分配端口 proto: tcp: 21
啟動(dòng)ngrok
./ngrok -subdomain test -config=ngrok.cfg 80
# 或者
./ngrok -config ngrok.cfg start test
#如果在配置文件里有配置多個(gè)端口映射,可以start多個(gè)
./ngrok -config ngrok.cfg start test ssh
# 如果出現(xiàn)問(wèn)題連接不上,想在本地查看日志,可加上log參數(shù)
# ./ngrok -log ngrok.log -config ngrok.cfg start test
# 最終如果`Tunnel Status`顯示`online`則表示成功了
服務(wù)端防火墻
由于服務(wù)器上開(kāi)啟了防火墻,使用的是iptables
,所以需要將上面的端口添加到白名單
一共3個(gè),一個(gè)是ngrok
自身的4443
端口,還有自定義的8888
http端口,8889
https端口
vim /etc/sysconfig/iptables
添加以下內(nèi)容
-A INPUT -m state --state NEW -m tcp -p tcp --dport 4443 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8888 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8889 -j ACCEPT
重啟iptables
service iptables restart
阿里云服務(wù)器設(shè)置
如果你的服務(wù)器是阿里公有云ECS,那么你需要進(jìn)行如下設(shè)置:管理控制臺(tái)--ESC實(shí)例--管理--本實(shí)例安全組--配置規(guī)則--創(chuàng)建規(guī)則。 把服務(wù)端監(jiān)聽(tīng)的三個(gè)端口放行就可以了。
go語(yǔ)言環(huán)境安裝
上篇中介紹了yum安裝方法。此處是手動(dòng)安裝。根據(jù)自己的系統(tǒng)下載安裝包,下載地址http://www.golangtc.com/download
下載完成后直接解壓。
tar -zxvf go1.7.4.linux-amd64.tar.gz -C /usr/local
設(shè)置環(huán)境變量,可以根據(jù)自己需要調(diào)整路徑。
vim /etc/profile
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=$HOME/go
export GOROOT_BOOTSTRAP=/usr/local/go
使變量生效
source/etc/profile
查看是否安裝成功
go env
ngrok的交叉編譯
交叉編譯:就是在一個(gè)平臺(tái)上生成另一個(gè)平臺(tái)上的可執(zhí)行代碼。
網(wǎng)上有人說(shuō):服務(wù)器上要編譯windows客戶
端版本時(shí),需要進(jìn)行如下設(shè)置:
cd /usr/local/go/src
GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 ./make.bash
我在別的服務(wù)器測(cè)試過(guò)后,不用這樣也行,直接按上篇的方法直接編譯即可。
我按上面進(jìn)行設(shè)置。反而會(huì)報(bào)這樣的錯(cuò):
go ./make.bash: eval: line 135: syntax error near unexpected token `(
ERROR: Cannot find /root/go1.4/bin/go.
Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.
報(bào)錯(cuò)原因:go新版本不是用C編寫的,而1.4之前的是C編寫的,所以需要先安裝1.4的,才能編譯1.6的,于是便先安裝了1.4,再安裝1.6。
新聞名稱:搭建ngrok服務(wù)器之?dāng)U展
標(biāo)題網(wǎng)址:http://ef60e0e.cn/article/ijheps.html