すべてのプロダクト
Search
ドキュメントセンター

:POPから取得されたコンテンツが、オリジンサーバーから返されたコンテンツと異なるのはなぜですか。

最終更新日:Feb 29, 2024

POPから取得されたコンテンツがオリジンサーバから返されたコンテンツと異なる場合、POP (point of presence) は、POPからオリジンサーバにリダイレクトされたHTTP要求に特定のヘッダを追加している可能性があります。 オリジンサーバーは、ヘッダーに異なる処理ロジックを使用します。 したがって、異なるコンテンツが返されます。

問題の説明

Alibaba Cloud CDNまたはDynamic Content Delivery Network (DCDN) を使用してコンテンツ配信を高速化した後、POPから返されるコンテンツはオリジンサーバーから返されるコンテンツとは異なります。

原因

クライアント要求がPOPに到達すると、次のロジックが実行されます。

  • リクエストがキャッシュにヒットした場合: POPは、要求されたコンテンツをクライアントに返す。

  • リクエストがキャッシュにヒットしない場合: POPはリクエストをオリジンサーバーにリダイレクトし、HTTPリクエストに特定のヘッダーを追加します。 次の図は、POPがリクエストを配信元サーバーにリダイレクトする方法を示しています。

    image

特定のシナリオでは、オリジンサーバーは、さまざまな方法を使用して特定のヘッダーを含むリクエストを処理できます。 その結果、POPから返されるコンテンツは、オリジンサーバーから返されるコンテンツとは異なります。 たとえば、オリジンサーバーは、HTTPリクエストにViaヘッダーが含まれているかどうかをチェックして、リクエストがプロキシサーバーからのものであるかどうかを判断し、対応する応答を行います。

解決策:

  1. 問題の原因となるヘッダーを特定します。

    • オリジンサーバーからコンテンツを取得し、結果を記録します。

    • POPをシミュレートして特定のヘッダーをHTTPリクエストヘッダーに追加し、オリジンサーバーからコンテンツを取得して、結果を記録します。

    • 異なるヘッダーを使用して、問題の原因となるヘッダーを特定するまで操作を繰り返します。

  2. オリジンサーバーの設定を変更するか、問題の原因となるヘッダーを削除します。

    • オリジンサーバーの設定を確認し、ビジネス要件に基づいて特定のヘッダーのレスポンスロジックを変更します。

    • ヘッダーがサービスに影響を与えず、Alibaba Cloud CDNを使用している場合は、Alibaba Cloud CDNコンソールでヘッダーを削除できます。 Secure CDN (SCDN) またはDCDNコンソールでヘッダーを削除することはできません。 ヘッダーを削除するには、チケットを起票し、Alibaba Cloudテクニカルサポートにお問い合わせください。

解決策

ステップ1: この問題の原因となるヘッダーを見つける

オリジンサーバーは、特定のヘッダーに対してのみ異なるコンテンツを返します。 したがって、特定のヘッダーを見つける必要があります。 ヘッダーを特定するには、次の操作を実行します。

  1. オリジンサーバーからコンテンツを取得し、結果を記録します。

    curl -voa 'http://[$Your_Wesbite]' -x [$Origin_Server_IP]:[$Origin_Server_Port]
    説明
    • [$Your_Wesbite]: ウェブサイトのドメイン名。

    • [$Origin_Server_IP]: オリジンサーバーのパブリックIPアドレス。

    • [$Origin_Server_Port]: Webサイトをホストするオリジンサーバーのポート。 ほとんどの場合、ポート80または443が使用されます。

  2. POPをシミュレートして特定のヘッダーをHTTPリクエストヘッダーに追加し、オリジンサーバーからコンテンツを取得して、結果を記録します。

    curl -voa 'http:// www.[$Your_Wesbite].com' -x [$Origin_Server_IP]:[$Origin_Server_Port] -H 'Via:example.aliyundoc.com '
    説明

    この例では、Vi a:example.aliyundoc.comヘッダが使用される。 ビジネス要件に基づいて、カスタムヘッダーと値を使用できます。 Alibaba Cloud CDNによって追加されるヘッダーの詳細については、「参照」をご参照ください。

  3. ステップ1とステップ2の結果を比較します。

    • 結果が一貫している場合: 手順1と手順2を繰り返し、一貫性のない結果が返されるまで手順2のヘッダーを置き換えます。

    • 結果に矛盾がある場合: ヘッダーを記録し、次のステップに進みます。

手順2: オリジンサーバーの設定を変更するか、問題の原因となるヘッダーを削除します

特定のヘッダーを見つけたら、次のいずれかの方法を使用して問題を解決できます。

  • 配信元サーバーの設定を変更します。 HTTPリクエストヘッダーに基づいて異なるコンテンツを返す構成がオリジンサーバーに存在するかどうかを確認します。 設定が存在する場合は、ビジネス要件に基づいて設定を変更します。

  • Alibaba Cloud CDNコンソールで問題の原因となるヘッダーを削除します。 問題の原因となるヘッダーがサービスに影響を与えない場合は、Alibaba Cloud CDNコンソールでヘッダーを削除できます。 リクエストヘッダーを削除する方法については、「削除操作のパラメーター」をご参照ください。

参考資料

次のセクションでは、POPによって追加されるヘッダーについて説明します。

経由: cn2XXX6.l1, vcache10.cnXXX36, l2cnXXX5.l2, cache28.lXXX35
Eagleeye-Traceid: 24689aa4XXXX58162753e
Ali-Swift-Log-Host: example.aliyundoc.com
Ali-Swift-Stat-Host: demo.example.aliyundoc.com
X-転送対象: 58.XX. XX.41
X-Client-Scheme: http
Ali-Cdn-Real-Ip: 58.XX. XX.41
Ali-Swift-5Xx-No-Retry: on
Cdn-Src-Ip: 127.0.0.1
Ali-Swift-Range-Cache: on 
説明

次のセクションでは、ヘッダーについて説明します。

  • Via: リクエストが通過するPOPに関する情報。

  • Ali-Cdn-Real-Ip: リクエストを送信するクライアントのIPアドレス。

  • Ali-Swift-Range-Cache: 範囲オリジンフェッチ機能を有効にした場合、POPはこのヘッダーを追加します。 詳細については、「範囲オリジンフェッチの設定」をご参照ください。

  • X-Forwarded-For: 標準HTTP XFFフィールド。