2016-11-30 6 views
0

私はデスクトップとモバイルクライアント用に異なるコンテンツを提供する必要があるために、次のアーチの背後にいくつかのWebコンテンツを持っています。Nginxのヘッダーの値に応じて異なるコンテンツを配信します

クライアント> AWS CloudFrontは> nginxの> ...

CloudFrontは、ユーザー・エージェントを識別するための組み込みの機能を持っており、彼らは一種の4つの特別なヘッダ(例えばCloudFrontの-IS-デスクトップ・ビューア)にそれを統一します真または偽のいずれかです。

on Nginxこれらのヘッダーに従って配信するコンテンツを決定しようとしています。例えば :

location/{ 
    if ($http_CloudFront-Is-Desktop-Viewer = true) { 
     proxy_pass http://upstream; 
     break; 
    } 
    root /var/www/static/en-US; 
    try_files $uri /index.html; 
} 

ので、CloudFrontを-IS-デスクトップ-Viewerの値がtrueの場合は、上記の場合には、それは、上流に行く必要があり、それが存在偽かではない場合nginxのから静的ファイルを取得します。

しかし何らかの理由で私は常にnginxから静的ファイルを取得します。 私はこのヘッダーが転送されていると確信しています。私はヘッダー修飾子付きのchromeから直接送信しようとしました。

何が欠けていますか?

多くのおかげ

答えて

0

は、この変数を試してみてください:

$ http_cloudfront_is_desktop_viewer

From manual about embedded variables

$ http_name nginxの

任意のリクエストヘッダフィールド。変数名の最後の部分は フィールド名は小文字に変換され、ダッシュは のアンダースコアに置き換えられます

+0

は同じようです... –

関連する問題