コンテンツ配信のためにWebサイトをAlibaba Cloud CDNに追加した後、カスタムHTTPレスポンスヘッダーを設定して、異なる配信元サーバーからのリソースにアクセスできます。
CORSとは何ですか?
クロスオリジンリソース共有 (CORS) は、webページが異なるオリジンサーバーからリソースにアクセスしてロードできるようにするために、HTML5によって提供される標準のクロスオリジンソリューションです。 これにより、データ伝送のセキュリティが確保される。 詳細については、「クロスオリジンリソース共有 (CORS) 」をご参照ください。
メリット
セキュリティ上の目的で、ブラウザは同一オリジンポリシーを使用します。 これにより、webページが、異なるドメインまたはサブドメインから、または異なるプロトコルまたはポートを介してリソースにアクセスおよびロードする要求を開始することが制限されます。 たとえば、example.comはn example.orgのリソースにアクセスできません。 CORSを設定するときに、ポイントオブプレゼンス (POP) がクライアントに返す応答ヘッダーを指定できます。 このように、要求が、許可されたヘッダに含まれるヘッダを搬送する場合、要求されたリソースは、異なる起点からであってもアクセスされ、ロードされ得る。
CORSの仕組み
CORSが有効になっていません
CORS対応
使用上の注意
オリジンサーバーがOSS (Object Storage Service) バケットで、CORSがOSSコンソールとAlibaba Cloud CDN コンソールの両方で設定されている場合、Alibaba Cloud CDN のCORS設定が使用されます。 詳細については、「CORS」をご参照ください。
オリジンサーバーがオンプレミスサーバーまたはECSインスタンスの場合、動的コンテンツと静的コンテンツを区別することを推奨します。 これにより、静的コンテンツの配信がAlibaba Cloud CDN によって高速化されます。 Alibaba Cloud CDN のCORS設定は、静的リソースに対してのみ有効になります。
CORSの有効化
Alibaba Cloud CDNコンソール
左側のナビゲーションウィンドウで、ドメイン名 をクリックします。
[ドメイン名] ページで、管理するドメイン名を見つけて、アクション 列の 管理 をクリックします。
ドメイン名の左側のナビゲーションツリーで、キャッシュ設定 をクリックします。
ノード HTTP レスポンスヘッダー タブをクリックします。
追加 をクリックします。
次の表に従ってパラメーターを設定し、OK をクリックします。
パラメーター
例
実行内容
追加
応答ヘッダー
アクセス制御-許可-オリジン
応答ヘッダー値
*
説明このヘッダーをアスタリスク (*) に設定すると、すべてのオリジンに一致します。
1つ以上のIPアドレス、ドメイン名、またはIPアドレスとドメイン名の組み合わせを設定できます。 複数入力する場合は、カンマ (,) で区切ります。
このヘッダーのワイルドカード文字としてアスタリスク (*) を使用しない場合、値はhttp:// またはhttps:// で始まる必要があります。
ポート番号がサポートされています。
ワイルドカードドメイン名がサポートされています。
重複の許可
いいえ
説明はい: ヘッダーの重複が許可されています。 オリジンサーバーから返されたヘッダーと、レスポンスに追加されたヘッダーがクライアントに返されます。
いいえ: ヘッダーの重複は許可されていません。 オリジンサーバーから返されたヘッダーは、レスポンスに追加されたヘッダーによって上書きされます。
この例では、値Noが使用されます。 このパラメーターは、ビジネス要件に基づいて設定できます。
重要重複の許可 と CORS の設定は相互に排他的です。 重複の許可 を [はい] に設定した場合、はい の設定は無効になります。
CORS
有効
説明実行内容 を 追加 に設定し、応答ヘッダー を [アクセス制御-許可-オリジン] に設定した場合にのみ、CORSパラメーターを設定できます。
CORSの有効な値: しないおよび有効。 デフォルト値: しない。
しない: POPはユーザーリクエストのOriginヘッダーをチェックしません。 この場合、POPはAccess-Control-Allow-Originの設定値を返します。
有効: POPはユーザーリクエストのOriginヘッダーをチェックし、次のルールに基づいてAccess-Control-Allow-Originヘッダーの値を指定します。
ワイルドカードパターンマッチ: Access-Control-Allow-Originヘッダーをアスタリスク (*) に設定した場合、ユーザーリクエストにOriginヘッダーまたはOriginヘッダーに指定された値が含まれているかどうかに関係なく、Access-Control-Allow-Origin:* が返されます。
完全一致: Access-Control-Allow-Originヘッダーに1つ以上の値を指定できます。 複数入力する場合は、カンマ (,) で区切ります。
ユーザーリクエストのOriginヘッダーの値がAccess-Control-Allow-Originヘッダーの値と一致する場合、一致したAccess-Control-Allow-Originヘッダーの値が返されます。
ユーザーリクエストのOriginヘッダーの値がAccess-Control-Allow-Originヘッダーの値と一致しない場合、Access-Control-Allow-Originヘッダーは返されません。
ワイルドカードドメイン名の一致: Access-Control-Allow-Originヘッダーをワイルドカードドメイン名に設定すると、Originヘッダーの値がワイルドカードドメイン名と一致します。
CORSパラメーターを有効に設定し、応答ヘッダー値パラメーターに指定する値にハイフン (
-
) が含まれている場合は、ハイフン (-
) を%-
にエスケープする必要があります。 例:元の応答ヘッダー値:
http://doc.aliyun-example.com
エスケープされたレスポンスヘッダー値:
http:// doc.aliyu n%-example.com
次の表に従ってパラメーターを設定し、OK をクリックします。
パラメーター
例
実行内容
追加
応答ヘッダー
アクセス制御-許可-メソッド
応答ヘッダー値
GET、POST、またはPUT
説明GET, POST, PUTを同時に指定する場合は, コンマ (,) で区切ります。
重複の許可
いいえ
説明はい: ヘッダーの重複が許可されています。 オリジンサーバーから返されたヘッダーと、レスポンスに追加されたヘッダーがクライアントに返されます。
いいえ: ヘッダーの重複は許可されていません。 オリジンサーバーから返されたヘッダーは、レスポンスに追加されたヘッダーによって上書きされます。
この例では、値Noが使用されます。 このパラメーターは、ビジネス要件に基づいて設定できます。
例
例1
Access-Control-Allow-Originヘッダーをコンマ (,) で区切られた1つ以上の値に設定した場合:
ユーザーリクエストのOriginヘッダーの値がAccess-Control-Allow-Originヘッダーの値と一致する場合、一致したAccess-Control-Allow-Originヘッダーの値が返されます。
ユーザーリクエストのOriginヘッダーの値がAccess-Control-Allow-Originヘッダーの値と一致しない場合、Access-Control-Allow-Originヘッダーは返されません。
Alibaba Cloud CDN コンソールで、レスポンスヘッダーはアクセス制御-許可-オリジン: http://example.com https://aliyundoc.comに設定されています。
ユーザーリクエストのOriginヘッダーの値がhttp://example.comの場合、POPはAccess-Control-Allow-Origin:http://example.comを返します。
ユーザーリクエストのOriginヘッダーの値がhttp://aliyundoc.comの場合、リクエストはHTTPを使用し、POPはHTTPSリクエストに応答するため、POPはAccess-Control-Allow-Originを返しません。
ユーザーリクエストのOriginヘッダーの値がhttps://aliyundoc.comの場合、POPはAccess-Control-Allow-Origin:https://aliyundoc.comを返します。
ユーザーリクエストのOriginヘッダーの値がhttp://aliyun.comの場合、ドメイン名が一致しないため、POPはAccess-Control-Allow-Originを返しません。
例2
Access-Control-Allow-Originパラメーターをワイルドカードドメイン名に設定した場合、POPはユーザーリクエストのOriginヘッダーの値がワイルドカードドメイン名と一致するかどうかを確認します。
Alibaba Cloud CDN コンソールで、レスポンスヘッダーはAccess-Control-Allow-Origin:http:// * .aliyundoc.comに設定されています。
ユーザーリクエストのOriginヘッダーの値がhttp://demo.aliyundoc.comの場合、POPはAccess-Control-Allow-Origin:http://demo.aliyundoc.comを返します。
ユーザーリクエストのOriginヘッダーの値がhttp://demo.example.comの場合、ドメイン名が一致しないため、POPはAccess-Control-Allow-Originを返しません。
ユーザーリクエストのOriginヘッダーの値がhttps://demo.aliyundoc.comの場合、リクエストはHTTPSを使用し、POPはHTTPリクエストにのみ応答するため、POPはAccess-Control-Allow-Originを返しません。