做者:CODING - 楊周
新冠肺炎期間,約翰霍普金斯大學開發的疫情地圖網站單日 PV 達 10 億次,查看源代碼能夠看出它是一個單頁應用(single-page application,縮寫 SPA),JS 調用後端 API 返回動態數據。html
那麼,部署一個 10 億 PV 的靜態網站須要購買幾臺服務器?git
答案是:0 臺!web
在雲計算時代,靜態網站已再也不須要服務器,部署到雲存儲,開啓 CDN 便可全球高速訪問。npm
1991 年,萬維網誕生,包括 3 項關鍵技術:統一資源標誌符(URI)、HTML、HTTP。後端
初期的網站架構很簡單,手寫 HTML 或者用程序生成 HTML,經過 FTP/SCP 等方式上傳到服務器。瀏覽器
HTML 文件並不須要運算,不消耗性能,一臺服務器能夠支撐不少個網站,而自行購買一臺服務器只部署一個網站,成本高昂。因此網頁託管服務(Web hosting service)應運而生,價格低廉甚至免費(經過嵌入廣告盈利)。緩存
1993 年,CGI 誕生,Web 服務器收到瀏覽器請求,執行對應的 CGI 程序,動態輸出 HTML,這就是先後端混合的模式。在此以後的不少年裏,先後端是一個項目,一塊兒部署到服務器。服務器
1999 年,Ajax 誕生。網絡
2004 年,Gmail 大規模使用符合標準的跨瀏覽器 Ajax,先後端分離逐漸流行起來。架構
2006 年,AWS 發佈了雲存儲,宣告了雲計算時代的誕生。HTML/CSS/JS 做爲簡單的小文件,無需特殊處理,部署到雲存儲,再配合 CDN,成了靜態網站架構最佳實踐,有以下優勢:
2010 年起,AngularJS、Vue.js、React 等框架陸續誕生,開發的單頁應用(SPA)使用 Ajax 技術實現了完全的先後端分離,也意味着先後端單獨部署。
目前,靜態網站有 2 種:
警告:React/VUE SPA 不帶內容,難以被搜索引擎收錄,不適合做爲公司官網、博客。若是有 SEO 需求,推薦使用 MkDocs、Hexo、VUE Nuxt、React Next。
經過「持續集成」生成 HTML,自動部署到「雲存儲」,變成靜態網站。
在「DNS 解析」中設置 www 和 根域名,確保二者皆可訪問,而且二選一進行跳轉避免影響 SEO,推薦 2 種方案:
提醒:
瀏覽完整代碼。
pipeline { agent any stages { stage('檢出') { steps { checkout([$class: 'GitSCM', branches: [[name: env.GIT_BUILD_REF]], userRemoteConfigs: [[ url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID ]]]) } } stage('安裝依賴') { steps { sh 'npm i -g lint-md-cli' sh 'pip install mkdocs' } } stage('檢查書寫規範') { steps { sh 'lint-md docs/' } } stage('編譯') { steps { sh 'mkdocs build' } } stage('上傳到 COS Bucket') { steps { sh "coscmd config -a ${env.COS_SECRET_ID} -s ${env.COS_SECRET_KEY}" + " -b ${env.COS_BUCKET_NAME} -r ${env.COS_BUCKET_REGION}" sh 'coscmd upload -r ./site/ /' echo "預覽 https://${env.COS_BUCKET_NAME}.cos-website.${env.COS_BUCKET_REGION}.myqcloud.com/" } } } }