Hexo一鍵部署到阿里雲OSS並設定瀏覽器快取

2022-05-12 17:23:25 字數 2672 閱讀 9587

現在用hexo來搭建靜態站點的人越來越多了,很多人會選擇試用github pages服務來部署自己的靜態站,但github pages國內訪問速度實在無法接受,本文介紹一下如何一鍵使用阿里雲oss物件儲存服務部署hexo站點,同時解決乙個瀏覽器快取的坑。

首先要做的事情就是去阿里雲(建立乙個bucket:

進入bucket的配置頁面,選擇「基礎設定-靜態頁面」:

按照圖中的內容進行配置:

其實現在就可以在阿里雲的管理頁面上傳檔案部署**了,但實在是太麻煩,我們希望的是乙個自動化的方案。這裡我們需要建立乙個api的授權accesskey:

阿里雲現在開啟了子賬戶授權的功能,因此我們可以選擇跳轉到子賬戶管理的頁面:

首先建立乙個子賬戶:

這裡注意,由於我們這個賬戶是給api使用的,所以必須開啟程式設計訪問許可權:

返回以後,點選剛建立的賬戶右側的「新增許可權」:

這裡搜尋「oss」,選擇新增aliyunossfullaccess許可權:

返回列表,點選剛建立的賬戶名稱,建立乙個accesskey,這裡要注意,建立完accesskey後,會顯示乙個accesskey和乙個secretkey,一定要儲存好,只會顯示一次:

使用很簡單,在hexo專案下執行安裝命令:

npm i hexo-deployer-ali-oss-extend
在hexo專案配置檔案_config.yml中新增如下配置:

deploy:

- type: ali-oss

region: "《您的oss 區域**》"

accesskeyid: "《您的oss accesskeyid>"

accesskeysecret: "《您的oss accesskeysecret>"

bucket: "《您的bucket name>"

cachecontrol:

images: "《檔案http響應頭cache-control>,留空為no-cache"

css: ",留空為no-cache"

js: ",留空為no-cache"

html: ",留空為no-cache"

other: "《其它檔案http響應頭cache-control>,留空為no-cache"

其中區域**,可以在oss的bucket概覽當中找到,如下圖所示:

另外,這裡增加cache-control功能,是由於oss物件儲存並沒有針對常見的網頁檔案(如css、js、等)進行預設http響應頭的設定,這些不常更新的檔案不快取,會導致流量大量浪費,後面如果使用cdn的時候,cdn獲取不到快取配置也會進行不斷的回源,產生回源流量浪費。

配置就這麼簡單,然後執行部署命令:

hexo d
即可將專案部署到oss中,預設情況下將檔案上傳到bucket的根目錄下,如果需要部署到其他目錄,請在deploy下新增remotepath選項進行指定

remotepath: "《您要部署的目錄》"
當然,如果你使用了github的actions功能,可以配置自動執行hexo d,提交原始碼的時候自動執行部署指令碼,簡直不要太方便,具體配置方式不是本文討論的重點內容,可自行研究。

其實做到這一步,就已經可以訪問你的**了,可以在bucket概覽頁面找到你的訪問網域名稱,當然我們大概率需要使用自己的網域名稱訪問,如果你的網域名稱已經進行了備案,可以新增自定義網域名稱。

可以在「傳輸管理-網域名稱管理」中配置網域名稱:

點選「繫結網域名稱」,在如圖所示的內容中填入自己的網域名稱,如果你的網域名稱解析伺服器是阿里雲的話,可以點選「自動新增cname記錄」快速設定網域名稱解析:

如果你的網域名稱不在阿里雲解析的話,請根據頁面提示手動設定網域名稱解析。

分區域解析:設定dns解析將國內解析到阿里雲oss或cdn,國外解析到netlify、vercel甚至直接解析到github pages服務

hexo部署到阿里雲

因為最近工信部在查空殼備案,我有點懶,怕再次備案,正好因為之前的伺服器是放在南韓的aws上,響應有點慢,正好趁著這個機會,遷回來。本來是不想寫這個blog的,因為我本來就寫了一篇部署到aws上的bloghexo部署到aws。但是無奈阿里雲和aws還是有很多區別的。因此還是記錄下來。這個什麼新使用者免...

上傳檔案到阿里雲oss

先用composer切換到專案根目錄執行 composer require aliyuncs oss sdk php安裝好了後如圖 模組建立aliyunoss,並建立相應的控制器視 件夾,在aliyunoss資料夾下建立common配置檔案 use think controller use thin...

阿里雲掛載OSS到ECS

建立bucket 登陸阿里雲oss控制台,新增乙個bucket,獲取access key wget安裝 使用sudo或切換到root rpm ivh ossfs 1.80.3 centos6.5 x86 64.rpm掛載 my bucket bucket名稱 my access key id 授權金...