Vorwort Wie wir alle wissen, legt die Nginx-Konfigurationsdatei den Antwortheader mithilfe der Direktive „add_header“ fest. Gestern habe ich aus Langeweile mit curl die Informationen einer Site überprüft und festgestellt, dass der zurückgegebene Header nicht meinen Erwartungen entsprach: HTTP/2 200 Datum: Do, 07. Februar 2019 04:26:38 GMT Inhaltstyp: Text/HTML; Zeichensatz=UTF-8 variieren: Accept-Encoding, Cookie Cache-Steuerung: max. Alter=3, muss erneut validiert werden zuletzt geändert: Do, 07. Feb. 2019 03:54:54 GMT X-Cache: Fehlschlag Server: Cloudflare ... Die Hauptseite konfiguriert HSTS und andere Header in nginx.conf: add_header Strict-Transport-Security "max-age=63072000; Vorladen"; add_header X-Frame-Optionen SAMEORIGIN; add_header X-Inhaltstyp-Optionen nosniff; add_header X-XSS-Schutz "1; Modus=blockieren"; Der Antwortheader verfügt jedoch nicht über diese Header. Zusätzlich zu den regulären Headern ist am Standort nur ein Header-X-Cache konfiguriert. Der erste Eindruck ist, dass CDN diese Header filtert? Also habe ich nach der Dokumentation von Cloudflare gesucht, aber keine Dokumentation zum Umgang damit gefunden. Wenn man es sich recht überlegt, warum filtert CDN diese? Dir ist langweilig, weil Du zu viel gegessen hast? Sie führen keine politischen Ermittlungen durch! Das Problem verlagert sich auf die Nginx-Konfiguration. Ich öffnete Google und suchte nach „nginx location add_header“ und fand tatsächlich einige Fehler. Klicken Sie auf das add_header-Dokument der offiziellen Website. Dort finden Sie die folgende Beschreibung (weitere Informationen wurden weggelassen):
Beachten Sie die Betonung auf „Diese Anweisungen werden von der vorherigen Ebene übernommen, wenn und nur wenn auf der aktuellen Ebene keine add_header-Anweisungen definiert sind.“ Das heißt, die übergeordneten Einstellungen werden nur übernommen, wenn auf der aktuellen Ebene keine add_header-Direktive vorhanden ist. Meine Frage ist also klar: Am Standort befindet sich „add_header“ und die Konfiguration in nginx.conf wird verworfen. Dies ist ein beabsichtigtes Verhalten von Nginx und kann nicht als Fehler oder Falle bezeichnet werden. Bei genauerer Betrachtung dieses Satzes fällt jedoch ein interessanteres Phänomen auf: Nur der aktuellste Add_header funktioniert. add_header kann in http, Server und Standort konfiguriert werden, aber die nächstliegende Konfiguration wird wirksam und die obige Konfiguration ist ungültig. Aber das Problem endet hier nicht. Wird der Standort an einen anderen Standort umgeschrieben, erscheint im Endergebnis nur die zweite Kopfzeile. Zum Beispiel: Standort /foo1 { Header hinzufügen foo1 1; //foo2 neu schreiben; } Standort /foo2 { Füge den Header foo2 1 hinzu. Rückgabewert 200 "OK"; } Unabhängig davon, ob die Anfrage /foo1 oder /foo2 lautet, ist der endgültige Header nur foo2: Obwohl dies sinnvoll ist und ein normales Verhalten darstellt, fühlt es sich dennoch etwas gezwungen und unangenehm an: Es ist in Ordnung, wenn der Server die HTTP-Konfiguration verliert und der Standort die Serverkonfiguration verliert, aber die beiden Standorte befinden sich auf derselben Ebene! Wenn Sie die übergeordnete Konfiguration nicht übernehmen können und die Anweisungen im aktuellen Block nicht wiederholen möchten, besteht die Lösung in der Verwendung der Include-Anweisung. siehe
Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
1. Tools und Bibliotheken installieren # PCRE ist...
Lösen Sie das Problem der verstümmelten chinesisc...
Derzeit sind die Felder „Grundlegende Verwendung“...
Einführung Heute habe ich gelernt, wie man mit Py...
Ich habe kürzlich Bootstrap zum Entwickeln einer ...
Inhaltsverzeichnis Die dynamischen Partikeleffekt...
Moores Gesetz gilt nicht mehr Seit der Übernahme ...
Zeichensatzfehler treten immer auf Gebietsschema:...
Heute habe ich eine virtuelle Maschine für ein Ex...
Dieser Artikel stellt kurz die Beziehung zwischen...
Inhaltsverzeichnis Vorarbeit Backend-Konstruktion...
Das, was ich vorher geschrieben habe, ist zu komp...
Unter Linux wird Bash als Standard übernommen, wa...
Inhaltsverzeichnis Grundtypen jeder Typ Arrays Tu...
HTML-Formulare werden verwendet, um verschiedene ...