使用阿里云dns+oss+cdn+ssl发布静态网站
一、背景
公司為了做產品的推廣,讓前端團隊開發了一個靜態網站,打算部署到互聯網,向外提供訪問服務,提高宣傳力度。像此類的部署我們原來是直接扔到阿里外網服務器上,然后部署到nginx、tomcat或http-server等具有靜態資源發布能力的web容器上在,之后把域名解析到對應外網ip上即可。但是,現在我們手上沒有服務器,所以就打算利用阿里云oss的靜態資源托管模式,來訪問資源。
二、操作
2.1 oss內bucket創建并設置
1、首先登陸阿里云控制臺,找到oss服務,創建一個bucket,默認選擇“標準存儲”。
2、進入當前bucket里的文件管理,上傳靜態資源文件,注意一定要把網站的入口(例如:index.html)文件放到當前根目錄下
3、進入“基本設置”內的“靜態頁面”設置,設置“默認首頁”為上述網站入口文件-index.html,同時也可以設置默認的404頁面,如果你已經開發了404頁面的話。
4、此時bucket就配置好了,雖然此時bucket提供了外網的域名(http://bucketName.oss-cn-beijing.aliyuncs.com),但是,是無法通過此域名進行資源訪問。
2.2 域名解析并訪問
1、要解析域名需要先在阿里云采購一個一級域名,并且根據管局規定,如果要使用此域名需要對域名進行備案。
現在阿里官方備案審核需要15天,備案時還需要當前阿里云賬號下有一臺最少購買了3個月的ecs服務器進行配合。如果沒有,好像可以用其他賬號下的ecs服務器,生成一個備案服務號,然后在當前賬號填寫,這個曾經試過,但是流程沒有走完,就手動終止了,不知道有沒有坑,感覺問題不大。
2、備案通過之后,域名就可以使用了。此時根據公司需要把固定域名cname到上述bucket域名上。(例如:website.companyName.com?-> cname -> bucketName.oss-cn-beijing.aliyuncs.com )
3、打開瀏覽器訪問http://website.companyName.com地址,你可能會發現頁面會顯示403 Forbidden。這是由于oss上的資源默認是私有的,如果要訪問,要么加上簽名訪問,要么就把資源權限修改成“公共讀”。
2.3 快速配置域名解析
如果不想像上面那樣手動解析域名,這里有快速辦法。
1、點擊當前bucket里“傳輸管理”下的“域名管理”,可在此處直接添加要綁定的公司域名,然后打開“自動添加cname記錄開關”,然后等待一會,如果是新增一個新的解析記錄的話,一般都很快。
解析結果可以點擊列表右側的“域名綁定配置”按鈕進行查看,本地則使用ping命令進行確認。
2.4 安全
1、域名解析成功后,就可以使用公司的域名訪問了。但是,你會發現只能使用http協議進行訪問,這對于訪問你網站的用戶來說,瀏覽器提示此網站不安全,是不是心里總會有個疙瘩。所以綁定證書還是很有必要的。
此時你有3個選擇,1、阿里上花錢買一個有CA公司認證的證書;2、使用阿里提供的免費證書;3、自己做自簽證書;如果有錢,可以買個通配符證書,畢竟申請一個一級域名可以對公司大大小小的網站進行解析,證書都可以用來使用。如果沒錢就使用阿里提供的免費證書,但是只能對一個具體的域名進行簽名,并且一年只能申請20個,上一年還沒有這個限制呢。
2、有了證書之后,要在“傳輸管理”下的“域名管理”列表里的“證書托管”里填寫證書的信息。這里得吐槽一下,按理說我已經買了阿里的證書,它應該像給cdn還有全站加速配置證書一樣,在線選擇證書就行了。但是這里還是得手動的填寫公私鑰,不太理想。
到目前為止,你已經有一個看起來不錯的公司運營網站了。
2.5 cdn加速
網站跑起來了,但是有些偏遠地區反應訪問網站會比較慢(其實靜態資源還好,只要沒有大的文件,類似于宣傳視頻啥的,加載應該問題不大)。
針對這個問題,可以在域名與oss之間增加一個cdn,使用邊緣節點來緩存較大的文件,提高區域加載速度。訪問鏈為:域名 解析到 cdn,cdn回源到oss。配置如下:
1、切換到cdn服務,在域名管理列表內“添加域名”,然后輸入加速的域名(就是之前使用的域名),然后選擇源站信息為oss域名,再選擇之前的bucket域名(http://bucketName.oss-cn-beijing.aliyuncs.com),端口用80,業務類型、加速區域根據實際業務來定。
2、根據提示,手動將要加速的域名cname到cdn指定的域名上,例如:website.companyName.com?cname 到?website.companyName.com.w.kunlunca.com上,然后等待生效。
3、因為現在用戶第一命中是cdn,所以要把之前配置的證書遷移到cdn上來。如果你也是直接在線采購的阿里證書,點擊這里的“配置”可直接線上選,不用手動輸入了。
4、此時,你就可以分別使用http及https訪問公司運營網站了。
注意:
1、cdn一般會帶來緩存問題,如果不想每次更新了東西,手動點擊上圖中的“刷新預熱”來更新緩存的話。則可以在oss對應的bucket內的“傳輸管理”下的“域名管理”,打開“cdn緩存自動刷新”開關。
2、阿里云不支持使用一個新域名cname到有回源的cdn的域名上,例:cdn里的域名A回源ossA,能夠訪問ossA上的靜態頁面服務。此時想增加一個域名B也能實現訪問ossA上的資源,在不重新創建一個cdn記錄的前提下,能否通過域名B cname到域名A來實現,或者通過域名B cname 到域名域名http://A.kunlun.can.com上解決?
官方回答:不可以通過其他域名CNAME到已存在域名的CNAME使用,即不支持B域名CNAME到A域名的CNAME值使用。域名和CNAME是一一對應的關系,如有需求只能通過新增域名的方式使用。3、能否解決上述問題呢?在dns解析時,我嘗試使用顯性url及隱性url將域名B的請求轉發到域名A上,經測試,能實現上述功能。但是就只能使用http訪問了,證書不生效。
總結
以上是生活随笔為你收集整理的使用阿里云dns+oss+cdn+ssl发布静态网站的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win10删除历史壁纸记录
- 下一篇: BGA封装及分类