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 spielen Sie lokale Mediendateien (Video und Audio) mit HTML und JavaScript ab

Erstens kann JavaScript aus Sicherheitsgründen ni...

Master-Slave-Synchronisationskonfiguration der Mysql-Datenbank

Inhaltsverzeichnis Mysql Master-Slave-Synchronisi...

Vereinfachen Sie die komplexe Website-Navigation

<br />Das Navigationsdesign stellt eine der ...

Detaillierte Erklärung zur Verwendung des Schlüsselworts ESCAPE in MySQL

MySQL-Escape Escape bedeutet die ursprüngliche Se...

Zusammenfassung von 10 erstaunlichen Tricks von Element-UI

Inhaltsverzeichnis el-scrollbar Bildlaufleiste el...

Installieren und Bereitstellen von Java8 und MySQL unter CentOS7

Im Allgemeinen werden Java-Lernprogramme und Bere...

So starten Sie eine Transaktion in MySQL

Vorwort In diesem Artikel wird hauptsächlich besc...

Vue-Plugin-Fehler: Auf dieser Seite wurde Vue.js erkannt. Problem gelöst

Das Vue-Plugin meldet einen Fehler: Vue.js wurde ...

JavaScript-Simulationsrechner

In diesem Artikel wird der spezifische Code des J...

Die entsprechenden Attribute und Verwendung von XHTML-Tags in CSS

Als ich anfing, Webseiten mit XHTML CSS zu entwer...