2016-11-30 12 views
0

dienen Ich habe einige Web-Inhalte hinter dem folgenden Bogen, für die ich unterschiedliche Inhalte für Desktop-und Mobile-Clients dienen muss.verschiedene Inhalte nach Header-Wert in Nginx

Client> AWS Cloudfront> Nginx> ...

Cloudfront hat die eingebaute Fähigkeit, den User-Agent zu identifizieren und sie Art vereinen sie in 4 spezielle Header (zum Beispiel Cloudfront-Is-desktop-Viewer) die entweder wahr oder falsch sind.

auf Nginx Ich versuche zu entscheiden, welchen Inhalt nach diesen Headern zu dienen. zum Beispiel:

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

so im obigen Fall sollte es dem stromaufwärts gehen, wenn die Cloudfront-Is-desktop-Viewer-Wert wahr ist, und die statischen Dateien von nginx, wenn es keine falschen oder nicht ist.

aber aus irgendeinem Grund bekomme ich immer die statischen Dateien von Nginx. Ich bin sicher, dass dieser Header weitergeleitet wird, ich habe sogar versucht, es direkt aus Chrome mit einem Header-Modifikator zu senden.

was fehlt mir?

vielen Dank

Antwort

0

Versuchen Sie, diese Variable:

$ http_cloudfront_is_desktop_viewer

From manual about embedded variables:

$ http_name nginx

beliebigen Request-Header-Feld; der letzte Teil eines Variablennamens ist der Feldname durch umgewandelt Striche ersetzt zu senken Fall mit unterstreicht

+0

scheint gleich zu sein ... –

Verwandte Themen