阿里雲服務器中使用“寶塔”實現端口轉發——反向代理,用於實現小程序檢驗合法域名問題,再也不用調試模式下響應後端了!!!

【寫在前面】
本人技術宅小小小白一枚(菜要說三遍),最近寫完一個小程序後發現如果沒有配置合法域名的話,就只能在調試模式下響應自己搭的服務器後端,自然這是比較麻煩的,所以問了很多大佬,自己也在網上搜集了很多方法,終於實現了!

【前提條件】
搭過小程序的朋友想必都很清楚,小程序對於域名的要求是比較高的,需要校驗TLS版本以及HTTP證書,講白了就是需要https開頭的域名,詳細見下圖:
圖片來源:小程序開發文檔
所以在看下面內容前,你要具備:
①需要用後端與自己的小程序進行交互(wx.request()…)
且後端已經搭建完畢,只差反向代理臨門一腳
(我本人的小程序後端是基於python的flask框架)
②阿里雲(或其他)上有已經備案過的合法域名,具體百度上都有,可以先去看看。
③雲服務器上已經安裝過“寶塔”服務器運營管理面板
注意:一定要在自己的雲服務器上裝寶塔,而不是自己的物理機上!!!

怎麼,現在都安裝好了?那我們就開始吧!

1.安裝“寶塔”服務器運營管理面板

安裝鏈接:https://www.bt.cn/
(版本根據你自己雲服務器的系統去選擇)
我的雲服務器系統是windows server 2012 , 所以我將以我的雲服務器爲例講解具體的操作。
安裝完成之後界面如下:
面板初始信息
從上圖中我們根據提示訪問面板地址,輸入賬號和密碼
注意:面板地址在本機打開,寶塔在雲服務器上就行
如果打開的網址無法顯示,則看一下注意事項。首先檢查一下自己瀏覽器版本是否符合,如果還不行,則需要我們前往阿里雲設置一下安全組內容,放行它所列出的相關端口。具體操作如下:
①登錄阿里雲服務器,進入控制檯,在上方的搜索欄中可以直接搜索“雲服務器”選擇 雲服務器ecs控制檯進入,然後點擊 網絡與安全,再選擇 安全組,進入 配置規則
安全組界面
進入如下界面:
配置規則
入方向添加安全組規則**(右上方)
端口範圍選擇1/10000(意思是匹配端口範圍爲1-10000)
授權對象填寫 0.0.0.0/0(意思是默認匹配所有端口)
添加安全組規則
以上操作完成後,那麼我們的安全組就成功放行了1-10000的所有端口啦!!!這時候我們再打開面板地址,輸入提供的用戶名和密碼就可以進入寶塔啦!!!
在這裏插入圖片描述
這時候一般會有彈出框,讓你選擇下載一種web服務器,一定要選擇噢,後面反向代理要用到,這裏我選擇下載的是Apache服務器。
不要驕傲呦,後面的路還很長!

2.下載FRP內網穿透工具

官網上都可以下載,附上鍊接
http://www.chuantou.org/
(下載不了的話私信我發你安裝包)
要注意的是,在你的本機和雲服務器端都要下載FRP,需要同時配置服務器端和客戶端,實現交互功能
這裏需要解釋一下爲什麼要下載內網穿透工具,以下僅是我個人的一些理解,如有錯誤,歡迎指正:
專業知識不夠,只能講個大概,我們自己搭的小程序後端是在我們本機的局域網下運行的,要想實現用戶通過外網訪問小程序並響應服務器,則需實現內網穿透。
當然,我們也可以不需要用內網穿透,直接放在自己的雲服務器下跑就可以了,不過自己在使用雲服務器跑小程序時,無法順利響應後端,故只能移步到我的本機
這時候我們的FRP閃亮登場啦!!!之前有用過花生殼和NATAPP,嘶感覺解決不了我https響應的問題
①下載完成後,打開文件,顯示如下:

文件夾內容
可以很清楚看到,裏面包含frpc(客戶端)和frps(服務器端)兩類文件,下面我們開始配置吧!

②首先我們在雲服務器中打開該文件夾,雙擊打開frps.ini文件,將裏面內容修改爲:

[common]
#服務器端端口
bind_port=7000
#客戶端連接憑證
privilege_token=5201314
#最大連接數
max_pool_count=10

#客戶端映射的端口
vhost_http_port = 5200

#服務器看板的訪問端口
dashboard_port=7500
#服務器看板賬戶
dashboard_user=admin 
dashboard_pwd=admin

打開服務器的cmd,cd到文件夾路徑,輸入

frps.exe -c frps.ini

注意這是在服務器裏的命令!
運行成功界面
③在本機中,同樣進行相應的操作,但注意

[common]
server_addr = xx.xx.xx.xx    #雲服務器的公網ip地址
server_port = 7000
privilege_token=5201314
[web]
type = http
local_port = 5000  #默認響應端口
custom_domains =   xxxx    #合法域名
[tcp1]                                             
type = tcp                                       
local_port = 9091                           
remote_port = 1111 

不清楚也沒關係,照樣子改一下,後面再深入學習
打開本機的cmd,cd到文件夾路徑,輸入

frpc.exe -c frpc.ini

注意這是在用戶機裏的命令!
運行成功界面
以上我們就已經成功實現內網穿透啦!!!
接下來就是見證奇蹟的時刻

首先我們在本機上打開實現準備好的域名,加端口7500

#服務器看板的訪問端口
dashboard_port=7500

輸入用戶名和密碼—>均爲admin,在服務器端自行設置

#服務器看板賬戶
dashboard_user=admin 
dashboard_pwd=admin

進入的頁面就是我們實現內網穿透的詳細信息啦

然後 我們更換端口爲5200

#客戶端映射的端口
vhost_http_port = 5200

進入的頁面就是我們後臺所實現的功能界面啦(如果你寫了與小程序響應的頁面的話)
我的後端下的網頁

做到這裏我們已經成功實現了內網穿透嘍!

3.使用Nginx/Apache實現反向代理

①這裏我們就要用到寶塔啦,進入寶塔,在左側選項欄中選擇網站,點擊添加站點
添加站點
②建好後,點擊域名進入,在左側選項欄中選擇SSL
下載SSL證書並輸入密鑰及證書(百度有教程)
SSL
③再在左側選項欄中選擇反向代理
反向代理
③然後點擊添加反向代理,相應操作如圖:添加反向代理
(我用的是Apache服務器,和nginx服務器的彈出框稍微有些不同,不過無影響)

④最後在瀏覽器中輸入域名
反向代理後後端網頁
啊!終於結束啦!至此,我們已經成功的通過Apache反向代理實現了我們所需要的端口轉發啦!這時候我們再用小程序調用wx.request()、wx.uploadFile()等函數就可以在檢驗合法域名的情況下輕鬆的返回想要的數據啦!!!
小程序裏鏈接外網

【寫在後面】
對於小程序只能在調試模式下返回數據實在很鬧心,所以解決上述問題之後實在“大快人心 ”!上述過程若有疑惑之處,歡迎留言或私信交流哦!看完後覺得有用的話,點個贊再走唄

最後祝大家生活愉快,bug都會改!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章