在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    本地調(diào)試微信之內(nèi)網(wǎng)穿透

    最近一直在做微信服務(wù)號(hào)的相關(guān)開發(fā),其中一個(gè)特別麻煩的問題就是,如何在本地調(diào)試,將微信服務(wù)器的信息轉(zhuǎn)發(fā)到自己的開發(fā)機(jī)上,下面為大家介紹幾種我嘗試過的方法

    微信公眾號(hào)(服務(wù)號(hào))對(duì)服務(wù)器的要求

    微信沙盒環(huán)境

    正常開發(fā)測(cè)試我們肯定不能使用線上的app_id,微信為我們提供了沙盒環(huán)境,如果多人同時(shí)使用,可以各自申請(qǐng)各自的測(cè)試賬號(hào),綁定到自己的域名上就可以了。

    ngrok

    剛開始開發(fā)的時(shí)候,第一個(gè)想到的就是到網(wǎng)上搜“微信內(nèi)網(wǎng)穿透”,然后發(fā)現(xiàn)了ngrok,執(zhí)行下面命令后,會(huì)返回一個(gè)隨機(jī)的域名,然后這個(gè)域名的流量會(huì)轉(zhuǎn)發(fā)到你當(dāng)前機(jī)器上,因?yàn)殚_發(fā)環(huán)境需要通過Host頭對(duì)應(yīng)到不同的目錄,所以使用-host-header直接重新Host頭

    ./ngrok http -host-header=xxx.domain.com xxx.domain.com:80

    然而,忽然有一天不知道為什么,怎么都連不上了。。。

    這時(shí),我發(fā)現(xiàn)ngrok竟然是個(gè)開源軟件,到github下載下來后發(fā)現(xiàn),官網(wǎng)提供的是2.0版本的服務(wù),而開源的是1.X版本(沒有重新Host功能),所以放棄了。

    ssh

    因?yàn)槲矣幸慌_(tái)外網(wǎng)的阿里云服務(wù)器,想著看看有沒有什么辦法能利用起來,無意在網(wǎng)上發(fā)現(xiàn)了一條神奇的命令

    ssh root@domain.com -R 10000:xxx.domain.com:80

    對(duì)應(yīng)的nginx配置

    server { listen 80; server_name xxx.domain.com; location / { proxy_pass http://127.0.0.1:10000; }}

    執(zhí)行后,會(huì)登陸遠(yuǎn)程的服務(wù)器,然后通過ssh服務(wù)將流量轉(zhuǎn)發(fā)到本地的xxx.domain.com的80端口,太神奇了,之后也一直使用這條命令。

    frp

    最近開發(fā)人員變多了,不是所有人都有外網(wǎng)服務(wù)器,然后當(dāng)有兩個(gè)人同時(shí)需要開發(fā)測(cè)試的時(shí)候就有點(diǎn)尷尬了,本著找不到解決方法不睡覺的精神,我發(fā)現(xiàn)了一款國(guó)人寫的類似ngrok的軟件:frp

    配置稍微麻煩了一點(diǎn)點(diǎn),但是,這下可以同時(shí)支持多個(gè)人開發(fā)啦。

    實(shí)現(xiàn)步驟如下:

    配置域名泛解析

    將外網(wǎng)域名配置泛解析,*.domain.com都指到阿里云服務(wù)器的IP

    配置nginx(注意反向代理的端口我使用了30000)

    server { listen 80; server_name *.domain.com; location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_pass http://127.0.0.1:30000; }}

    外網(wǎng)服務(wù)器frps配置

    #frps.ini[common]#服務(wù)端口bind_port = 7000#虛擬端口vhost_http_port = 30000#dashboard端口和賬號(hào)密碼,可以直接加端口號(hào)方法,有一些統(tǒng)計(jì)數(shù)據(jù)dashboard_port = 7500dashboard_user = admindashboard_pwd = admin#為了防止別人卵用,我們加上tokenprivilege_token = Fiwlasdj&^$fadf#心跳超時(shí)heartbeat_timeout = 90#最大連接池max_pool_count = 5#認(rèn)證超時(shí)authentication_timeout = 900#子域名,配置后,客戶端可以隨便指定二級(jí)域名使用(方便多人)subdomain_host = domain.com#TCP 多路復(fù)用,不用可以刪掉tcp_mux = true

    啟用命令:./frps -c ./frps.ini

    客戶端frpc配置

    #frpc.ini[common]#外網(wǎng)服務(wù)器IPserver_addr = x.x.x.x#外網(wǎng)服務(wù)端口號(hào)server_port = 7000#客戶端啟用連接池,指定預(yù)創(chuàng)建連接的數(shù)量pool_count = 1#和服務(wù)器的token保持一致privilege_token = Fiwlasdj&^$fadf[web]#協(xié)議類型type = http#轉(zhuǎn)發(fā)到本地的端口號(hào)local_port = 80#子域名,可以通過wx.domain.com訪問到本地subdomain = wx#重新host header(按主要就要這個(gè)功能)host_header_rewrite = host.domain.com#本地Ip OR domain(這個(gè)官網(wǎng)并沒有說明,下面我會(huì)講為什么這樣設(shè)置)local_ip = xxx.localhost.com#TCP 多路復(fù)用,不用可以刪掉tcp_mux = true

    第一次使用沒有配置local_ip,然后本地會(huì)報(bào)錯(cuò)[E] [proxy.go:299] [web] connect to local service [127.0.0.1:80] error: dial tcp 127.0.0.1:80: getsockopt: connection refused。

    因?yàn)槲业沫h(huán)境跑在vagrant里面,正常情況我都是通過綁定host到虛擬機(jī)的ip使用的,但是frp默認(rèn)會(huì)訪問127.0.0.1,然后看了一下源碼對(duì)應(yīng)的位置,如下:

    localConn, err := frpNet.ConnectServer(“tcp”, fmt.Sprintf(“%s:%d”, localInfo.LocalIp, localInfo.LocalPort))if err != nil { workConn.Error(“connect to local service [%s:%d] error: %v”, localInfo.LocalIp, localInfo.LocalPort, err) return}

    繼續(xù)往上追蹤

    if cfg.LocalIp = section[“local_ip”]; cfg.LocalIp == “” { cfg.LocalIp = “127.0.0.1”}

    原來可以指定local_ip參數(shù)來實(shí)現(xiàn),不過之后的版本是否兼容,我就不清楚了,仰天一笑,哈哈哈哈。

    啟動(dòng)命令:./frpc -c ./frpc.ini

    鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
    上一篇 2022年6月21日 12:35
    下一篇 2022年6月21日 12:35

    相關(guān)推薦

    聯(lián)系我們

    聯(lián)系郵箱:admin#wlmqw.com
    工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息