POPから取得されたコンテンツがオリジンサーバから返されたコンテンツと異なる場合、POP (point of presence) は、POPからオリジンサーバにリダイレクトされたHTTP要求に特定のヘッダを追加している可能性があります。 オリジンサーバーは、ヘッダーに異なる処理ロジックを使用します。 したがって、異なるコンテンツが返されます。
問題の説明
Alibaba Cloud CDNまたはDynamic Content Delivery Network (DCDN) を使用してコンテンツ配信を高速化した後、POPから返されるコンテンツはオリジンサーバーから返されるコンテンツとは異なります。
原因
クライアント要求がPOPに到達すると、次のロジックが実行されます。
リクエストがキャッシュにヒットした場合: POPは、要求されたコンテンツをクライアントに返す。
リクエストがキャッシュにヒットしない場合: POPはリクエストをオリジンサーバーにリダイレクトし、HTTPリクエストに特定のヘッダーを追加します。 次の図は、POPがリクエストを配信元サーバーにリダイレクトする方法を示しています。
特定のシナリオでは、オリジンサーバーは、さまざまな方法を使用して特定のヘッダーを含むリクエストを処理できます。 その結果、POPから返されるコンテンツは、オリジンサーバーから返されるコンテンツとは異なります。 たとえば、オリジンサーバーは、HTTPリクエストにViaヘッダーが含まれているかどうかをチェックして、リクエストがプロキシサーバーからのものであるかどうかを判断し、対応する応答を行います。
解決策:
問題の原因となるヘッダーを特定します。
オリジンサーバーからコンテンツを取得し、結果を記録します。
POPをシミュレートして特定のヘッダーをHTTPリクエストヘッダーに追加し、オリジンサーバーからコンテンツを取得して、結果を記録します。
異なるヘッダーを使用して、問題の原因となるヘッダーを特定するまで操作を繰り返します。
オリジンサーバーの設定を変更するか、問題の原因となるヘッダーを削除します。
オリジンサーバーの設定を確認し、ビジネス要件に基づいて特定のヘッダーのレスポンスロジックを変更します。
ヘッダーがサービスに影響を与えず、Alibaba Cloud CDNを使用している場合は、Alibaba Cloud CDNコンソールでヘッダーを削除できます。 Secure CDN (SCDN) またはDCDNコンソールでヘッダーを削除することはできません。 ヘッダーを削除するには、チケットを起票し、Alibaba Cloudテクニカルサポートにお問い合わせください。
解決策
ステップ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が使用されます。
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によって追加されるヘッダーの詳細については、「参照」をご参照ください。
ステップ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フィールド。