2016-06-30 4 views
4

Ich habe eine CloudFront-Distribution mit einem S3-Ursprung. Ich möchte ein Verhalten so erstellen, dass Anforderungen an den Stammpfad der Website einen anderen Ursprung (einen Webdienst) verwenden.Wie kann ich ein Pfadmuster von "/" in einem CloudFront-Verhalten angeben?

So ideal wäre mein Verhalten sein:

  • "/" - webservice Herkunft
  • Standard (*) - S3 Eimer

jedoch die oben nicht zu funktionieren scheint - Die Root-Anforderung wird nicht vom ersten Verhalten abgefangen.

Gibt es eine Möglichkeit, wie ich mit Pfadmustern erreichen kann, was ich will?

+0

Ich würde erwarten '/', es zu tun, aber ich werde testen. Beim Testen haben Sie überprüft, dass Sie keine zwischengespeicherte Antwort sehen, nehme ich an? Angenommen, es funktioniert nicht (obwohl es scheint * sollte *), dann können Sie das Gegenteil tun, indem Sie das Standardverhalten '*' auf den Site-Server setzen und dann '/? *' Verwenden, um alles zu senden sonst zum Eimer, da das alles nach "/" mit einem oder mehreren Zeichen erfassen sollte. –

+0

Nein - es gibt keine Seite im Wurzelbereich des Buckets, daher erhalte ich nur die Fehlerseite, die ich im S3-Bucket definiert habe (vermutlich wurde diese Antwort also nicht zwischengespeichert). Ich hätte erwähnen sollen - ich hatte versucht, die Bedingungen zu invertieren und das Standardverhalten auf den Webservice zu setzen, aber das funktioniert auch nicht. Selbst wenn ich das Muster für das erste Verhalten als etwas wie "/ ??? *" spezifiziere, werden die Root-Anfragen immer noch von diesem gefangen und fallen nicht bis zum Standard * -Verhalten durch. – Mike

+0

CloudFront [macht Cache-Fehler] (http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/HTTPStatusCodes.html). Überprüfen Sie die Antwortheader für einen Header "Age:". Wenn vorhanden, hat CloudFront die Antwort (in Sekunden) zwischengespeichert. –

Antwort

1

Die Antwort ist, dass ein Cache-Verhalten mit einem Pfadmuster von '/' funktioniert nur die Root-URL übereinstimmen. In diesem speziellen Fall hatte der Benutzer auch ein Standard-Root-Objekt-Set, das vor den Verhaltensmustern abgeglichen wird. Das Entfernen des Standard-Root-Objekts ist erforderlich, wenn Sie ein Cache-Verhalten für die Root-URL mit dem Muster '/' definieren möchten.