Sitecore 9.1から、CDNを使用したメディアライブラリーのコンテンツの公開がサポートされています。この機能を使用することで、コンテンツデリバリーサーバーで公開されるメディアライブラリー配下の画像やファイルコンテンツをCDN経由で訪問者に提供するすることができるようになります。
今回は、Sitecore 9.1のOnPremise (IaaS) 環境で、メディアライブラリのCDNサポート機能を有効化し、動作確認します。CDNサポートはAzure MarketplaceからSitecoreを展開したり、Azure ToolkitからSitecoreをAzure PaaSに展開するときに同時に有効化することもできます。
CDNはどのサービスを使用してもいいですが、簡単に使用できるAzure CDNを今回は使用することとします。
1. Azure CDNの作成
Azure Portalにログインして、作成していきます。マーケットプレースから cdn をキーワードに、Azure CDN を検索します。CDNを選択し、表示されたブレードの Create をクリックします。
CDNプロファイルの作成用ブレードが表示されるので、名前、リソースグループ、Pricing tierを選択します。エンドポイントをこの場で作成する場合は、 Create a new CDN endpoint now を選択します。今回はチェックしません。
Pricing tier 別の機能比較
https://docs.microsoft.com/ja-jp/azure/cdn/cdn-features
作成したら、CDNプロファイルを表示して、 Overview -> Endpoint をクリックしてエンドポイントを作成します。
円dポイントの追加画面で、Nameに適当な名前を付けます。Origin typeは IaaSの環境を使うので、 Custom origin を選択しました。Origin hostname に、オリジンサーバー(Sitecoreお場合はCDサーバー) の名前を入力します。今回はCDサーバーでHTTPSを構成していないので、HTTPSのチェックはクリアしました。設定を確認して、エンドポイントを作成します。
作成したエンドポイントのURLは後で使用するのでメモしておきます。
CDN側の準備が終わったので、Sitecoreの設定を変更していきます。
2. メディアライブラリのCDNサポートの有効化
様々なデプロイパターンにおけるCDNの有効化の手順は、こちらに掲載されています。今回は手動で有効化していきます。Sitecoreがインストールされたフォルダーの/App_Config/Include/Examples に移動します。CDN.config.example をコピーし、Include フォルダーに貼り付けます。
コピーしたファイルの .example 拡張子を削除して、 CDN.config という名前にします。
CDN.configをメモ帳で開き、Media.MediaLinkServerUrlのパッチで、Azure CDNのエンドポイント構成時に作成したエンドポイントのURLを設定します。今回 CDサーバー側で https の構成をしていないので、CDNのエンドポイントもhttp にしました。
<setting name="Media.MediaLinkServerUrl"> <patch:attribute name="value">http://xxxxxxx.azureedge.net</patch:attribute> </setting>
変更を保存します。
上記以外のパラメーターの意味は、Sitecore Media Library CDN-related configuration reference を参照してください。
3.動作確認
実際にCD環境にアクセスします。ページ内で使用されているメディアライブラリーの画像のURLを確認すると、CDNのエンドポイントのホスト名になっていることを確認できます。
このように、Sitecore 9.1から、メディアライブラリーのメディアアイテムのURLを簡単に CDNのエンドポイントに変更することができます。
エクスペリエンスエディターでページを表示した場合は、CDNを使ったURLにはなりませんが、CDNのサポートはCDロールのサーバーでのみ有効化するようにしてください。
Azure CDNのキャッシュ設定をルール等によりより詳細にコントロールしたい場合は CDN setup considerations のページや、ページ内で参照されている先のページをご確認ください。
さんのコメント: さんのコメント: