Lösung für das Problem des Informationsverlusts mit "_" im Header bei Verwendung des Nginx-Proxys

Lösung für das Problem des Informationsverlusts mit "_" im Header bei Verwendung des Nginx-Proxys

Vorwort

Bei der Entwicklung eines Gateway-Projekts werden die Signaturinformationen sign_key beim Senden einer Anforderung in den Anforderungsheader eingefügt und beim Empfangen der Anforderung aus dem Header entfernt. Dies funktioniert beim lokalen Debuggen, aber nach dem Online-Gehen stellt sich heraus, dass es nicht über den Nginx-Proxy abgerufen werden kann.

Standort / {
 Proxy_Set_Header X-Real-IP $Remote_Addr;
 proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for;
 Proxy_set_header Host $http_host;
 proxy_set_header X-Nginx-Proxy wahr;

 add_header Proxy-Knoten $upstream_addr;
 add_header Proxy-Status $upstream_status; 
 
 Proxy_http_Version 1.1;
 Proxy-Passwort http://tianusa;
 }

Später fand ich heraus, dass der Grund darin lag, dass Nginx einige Einschränkungen bei Headern hatte und Unterstriche (_) nicht unterstützt wurden.

Lösung:

1. Keine Unterstriche

Ändern Sie den Unterstrich _ in etwas anderes, beispielsweise sign_key in sign-key

2. Entfernen Sie die Einschränkungen von Nginx aus dem Stammverzeichnis

Standardmäßig ignoriert Nginx automatisch alle „_“ im Anforderungsheader.

Die Lösung besteht darin, dem http-Abschnitt der Konfigurationsdatei nginx.conf in nginx die folgende Konfiguration hinzuzufügen:

underscores_in_headers ein; (Standardmäßig ist underscores_in_headers aus)

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:
  • So konfigurieren Sie nginx+php+mysql in Docker
  • Lösung für ungültige Nginx-Cross-Domain-Einstellung Access-Control-Allow-Origin
  • Beispielmethode zum Bereitstellen eines React-Projekts auf Nginx
  • Verwenden Sie das Tool nginx.vim zur Syntaxhervorhebung und Formatierung der Konfigurationsdatei nginx.conf
  • Detaillierte Erläuterung der Fallstricke von add_header im Nginx-Konfigurationstutorial
  • So konfigurieren Sie die bidirektionale Zertifikatsüberprüfung auf dem Nginx-Proxyserver
  • Shell-Skript Nginx-Automatisierungsskript
  • So erstellen Sie einen Nginx-Server mit Docker
  • Eine kurze Erläuterung, warum Daemon Off beim Ausführen von Nginx in Docker verwendet wird
  • Einführung in das Batch-Cache-Löschskript von nginx proxy_cache

<<:  Erläuterung unveränderlicher Werte in React

>>:  So finden Sie Websites mit SQL-Injection (unbedingt lesen)

Artikel empfehlen

So konfigurieren Sie Linux CentOS für die regelmäßige Ausführung von Skripten

Oft möchten wir, dass der Server regelmäßig ein S...

5 Tipps zum Schutz Ihres MySQL Data Warehouse

Durch die Aggregierung von Daten aus verschiedene...

Detaillierte Erklärung der JavaScript-Prototypenkette

Inhaltsverzeichnis 1. Konstruktoren und Instanzen...

Zwei Verwendungen von iFrame-Tags in HTML

Ich habe kürzlich an einem Projekt gearbeitet – B...

Sechs Tipps zur Verbesserung der Ladegeschwindigkeit von Webseiten

Zweitens hängt das Ranking von Schlüsselwörtern au...

Beispiel zur Erhöhung des Swap-Speichers im CentOS7-System

Vorwort Swap ist eine spezielle Datei (oder Parti...

3 Codes zur automatischen Aktualisierung von Webseiten

Tatsächlich ist es sehr einfach, diesen Effekt zu ...

Zusammenfassung der Entwicklung benutzerdefinierter Vue 3-Richtlinien

Was ist eine Richtlinie? Sowohl Angular als auch ...

So implementieren Sie den neuen Operator von JavaScript selbst

Inhaltsverzeichnis Konstruktor neuer Operator Imp...

Vue implementiert das Umschalten des Anmeldetyps

In diesem Artikelbeispiel wird der spezifische Co...

Details zu MySQL-Zeittypen und -Modi

Inhaltsverzeichnis 1. MySQL-Zeittyp 2. Überprüfen...

Prinzip und Anwendung der MySQL-Verbindungsabfrage

Überblick Eine der leistungsstärksten Funktionen ...