微信小程序使用微信云托管添加自定義域名并轉(zhuǎn)發(fā)到pexels.com

背景:我要在小程序上顯示pexels.com上的圖片桦锄,然后我得先把pexels.com的域名添加到小程序的request合法域名中甫菠,但是pexels.com是國外的胆数,在國內(nèi)沒有備案所以添加不了完慧。解決方案就是:用一個已經(jīng)備案好的域名進(jìn)行轉(zhuǎn)發(fā)刻蚯,轉(zhuǎn)發(fā)的服務(wù)器我選擇的是微信云托管绊含,備案好的域名還需要ssl,沒有的話本文會講到如何申請一個免費(fèi)的ssl證書炊汹。

因為pexels.com開放了API可以拿到圖片躬充,所以得先請求https://api.pexels.com拿到圖片列表,圖片的域名是images.pexels.com讨便,兩個域名都不能通過小程序后臺的校驗:


所以得需要有一個已備案的域名來進(jìn)行轉(zhuǎn)發(fā)充甚,這樣就能繞過限制了。

需要準(zhǔn)備的物料:

1霸褒、一個在國內(nèi)已經(jīng)備案好的域名

2伴找、github賬號

大致流程如下:

開通微信云托管服務(wù)

基于微信云托管模板部署部署一個expressjs服務(wù)

修改服務(wù)的路由轉(zhuǎn)發(fā)

1、先開通微信云托管:

進(jìn)入控制臺:

https://cloud.weixin.qq.com/cloudrun/console

點擊新建服務(wù)废菱,輸入服務(wù)名稱點擊確定:


大家可以先fork一下我的代碼倉庫:

https://github.com/2424004764/pexels-proxy-expressjs技矮,我把轉(zhuǎn)發(fā)的代碼都寫好了

之后在選擇方式的時候選擇綁定github倉庫:


如果不方便使用github倉庫,也可以將倉庫代碼包下載下來以手動上傳代碼包的形式部署:


如果是github的話殊轴,提交代碼以后會重新自動部署衰倦,會方便很多,而手動上傳代碼包的話還得重新上傳再手動點擊部署旁理,比較麻煩一點樊零。

選擇好后點擊發(fā)布按鈕就開始部署了:


等待部署完成,一般這個步驟幾分鐘左右孽文,部署好是這樣的:


我們可以點擊云端調(diào)試測試下服務(wù)是否可用:


如果輸出了當(dāng)前時間驻襟,則表明服務(wù)是好的夺艰。

expressjs服務(wù)的index.js代碼如下:

const express = require('express');const { createProxyMiddleware } = require('http-proxy-middleware');const app = express();try {? // 創(chuàng)建一個代理中間件,將以 /photos 開頭的請求代理到目標(biāo)地址? const photosProxy = createProxyMiddleware({? ? target: "http://images.pexels.com/photos",? ? changeOrigin: true, // 設(shè)置更改請求頭中的 Origin? ? pathRewrite: {? ? ? // 將 /photos 開頭的請求重寫為目標(biāo)地址的不同路徑沉衣,保留 /photos? ? ? '^/photos': '' // 保留 /photos 部分郁副,只替換后面的部分? ? },? });? // 使用代理中間件來處理以 /photos 開頭的請求? app.use('/photos', photosProxy);? const photosApiProxy = createProxyMiddleware({? ? target: "https://api.pexels.com",? ? changeOrigin: true,? ? pathRewrite: {? ? ? '^/pexels-api': ''? ? }? });? // 當(dāng)請求pexels-api時也轉(zhuǎn)發(fā)? app.use('/pexels-api', photosApiProxy);? // 根目錄路由處理函數(shù),輸出當(dāng)前時間? app.get('/', (req, res) => {? ? const currentTime = new Date().toLocaleString(); ?// 獲取當(dāng)前時間? ? res.send(`Current time is: ${currentTime}`); ? ? ? // 返回當(dāng)前時間到客戶端? });? app.listen(80, () => {? ? console.log("啟動成功");? });} catch (error) {? console.error('Failed to start application:', error);? process.exit(1); // 退出應(yīng)用并返回非零狀態(tài)碼}

簡書的編輯器太垃圾了厢蒜,代碼都顯示不好

這樣在一個域名下完成了兩個域名的轉(zhuǎn)發(fā)霞势,只要通過后綴區(qū)分即可烹植,我們先設(shè)置好自定義域名再說這么訪問斑鸦。

我們來到自定義域名頁面,點擊綁定域名:


假設(shè)aaaa.com是你已經(jīng)備案好的域名草雕,pexels-proxy是二級域名巷屿,如果你的域名有https證書的話,可以先把https證書上傳墩虹,如果沒有我在本文會講到如果10分鐘申請一個免費(fèi)https證書嘱巾。

申請免費(fèi)證書,我們打開并注冊一個賬號:https://www.sslchaoshi.com/

我們選擇體驗版證書:


選擇第一個诫钓,點擊查看詳情:


點擊購買:


選擇余額支付:


因為我這里已經(jīng)購買過了旬昭,所以不能再購買了:


購買后來到個人中心,這里應(yīng)該就能看到訂單了:


我記得好像是有驗證的菌湃,有一個選項是選擇dns问拘,然后需要驗證域名的cname記錄,按操作完成后等幾分鐘就能下證了:


我們點擊證書打包下載惧所,打開解壓后的目錄的ALL目錄:


我們再回到微信云托管的自定義域名頁面:


依次上傳證書和私鑰骤坐,然后點擊確定,之后就會得到一個cname的記錄值:


可在這里檢車ssl證書狀態(tài)(微信官方推薦):

https://myssl.com/ssl.html


再去域名注冊商處解析一個cname記錄即可


訪問方式:

1下愈、如果是請求api:則最終請求url為

https://pexels-proxy.aaaa.com/pexels-api/v1/curated纽绍。這樣就能繞過pexels.com未備案的限制了

2、如果是請求的圖片:

我們請求api的時候返回的列表格式為:


我們只需要將圖片的域名改成我們的子域名即可:

let list = []

res.photos.forEach((item, index) => {

list.push({

title: item.alt,

image: item.src.medium.replace("images.pexels.com", "pexels-proxy.aaaa.com"),

})

})

這里返回的src.original是原圖势似,medium是小圖拌夏,作為列表只用,如果點擊履因,則顯示原圖障簿,這樣圖片就不會失真了。

效果:



這篇文章就到這里啦搓逾!如果你對文章內(nèi)容有疑問或想要深入討論卷谈,歡迎在評論區(qū)留言,我會盡力回答霞篡。同時世蔗,如果你覺得這篇文章對你有幫助端逼,不妨點個贊并分享給其他同學(xué),讓更多人受益污淋。

想要了解更多相關(guān)知識顶滩,可以查看我以往的文章,其中有許多精彩內(nèi)容寸爆。記得關(guān)注我礁鲁,獲取及時更新,我們可以一起學(xué)習(xí)赁豆、討論技術(shù)仅醇,共同進(jìn)步。

感謝你的閱讀與支持魔种,期待在未來的文章中與你再次相遇析二!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市节预,隨后出現(xiàn)的幾起案子叶摄,更是在濱河造成了極大的恐慌,老刑警劉巖安拟,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蛤吓,死亡現(xiàn)場離奇詭異,居然都是意外死亡糠赦,警方通過查閱死者的電腦和手機(jī)会傲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來愉棱,“玉大人唆铐,你說我怎么就攤上這事”蓟” “怎么了艾岂?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長朋其。 經(jīng)常有香客問我王浴,道長,這世上最難降的妖魔是什么梅猿? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任氓辣,我火速辦了婚禮,結(jié)果婚禮上袱蚓,老公的妹妹穿的比我還像新娘钞啸。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布体斩。 她就那樣靜靜地躺著梭稚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪絮吵。 梳的紋絲不亂的頭發(fā)上弧烤,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機(jī)與錄音蹬敲,去河邊找鬼暇昂。 笑死,一個胖子當(dāng)著我的面吹牛伴嗡,可吹牛的內(nèi)容都是我干的急波。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼闹究,長吁一口氣:“原來是場噩夢啊……” “哼幔崖!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起渣淤,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎吉嫩,沒想到半個月后价认,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡自娩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年用踩,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片忙迁。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡脐彩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出姊扔,到底是詐尸還是另有隱情惠奸,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布恰梢,位于F島的核電站佛南,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏嵌言。R本人自食惡果不足惜嗅回,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望摧茴。 院中可真熱鬧绵载,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至培愁,卻和暖如春著摔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背定续。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工谍咆, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人私股。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓摹察,卻偏偏與公主長得像,于是被迫代替她去往敵國和親倡鲸。 傳聞我的和親對象是個殘疾皇子供嚎,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容