主機是別家的可以用 Cloud CDN 嗎? 一招教你客製外部來源!

cdn-external目前 Cloud CDN 雖然尚未支援 GCP 以外的來源(external origin),但我們可以在 HTTP(S)負載平衡器 (HTTP(S) Load Balancer) 的後端服務 (back-end services) 採取由 GCE VM 自建 Reverse Proxy 的方式提供原站的檔案給 Cloud CDN 讀取,便可快速的享用 Google 強大全球網路下的 CDN 服務。Reverse Proxy 的 VM 規格可使用 n1-standard-1,搭配 Linux 作業系統安裝 Nginx 或 Apache,建議後端 instance group 群組至少兩台避免 SPOF,  以下提供 Nginx 對於網站圖片,CSS 與 JS 的範例設定檔如下: upstream assets {        server 35.46.57.68:80; } server {        listen 80; server_name assets.gcp.expert;        location ~* \.(?:jpg|jpeg|gif|png|ico|svg|svgz|css|js)$ {                add_header Cache-Control "public";                expires 86400;                proxy_pass http://assets;                proxy_set_header Host $host;                proxy_set_header X-Real-IP $remote_addr;                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        } } 其中 upstream 的內容請修改為您的伺服器 IP/Domain Name 資訊,expires 值為Cloud CDN 上的快取時間。進階的CDN快取設定如對於通訊協定, 主機名稱或網址參數(URL query string) 快取,皆可透過快取金鑰 (cache keys) 的設定完成。其中在網址參數可指定白名單與黑名單作為 CDN 認定 URL 是否為同一個資源的判斷,可參考 https://cloud.google.com/cdn/docs/using-cache-keys 至於 Cloud CDN 內建於 HTTP(S)負載平衡器上的功能,資源是否能被 Cloud CDN 快取的詳細限制請參考 https://cloud.google.com/cdn/docs/caching#cacheability

連絡我們