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

Beispielcode zum Ausblenden von Element-Bildlaufleisten mithilfe von CSS

Wie kann ich die Bildlaufleisten ausblenden und t...

Sprechen Sie über implizite Konvertierung in MySQL

Im Laufe der Arbeit werden Sie auf viele Fälle im...

Detaillierte Einführung in den MySql-Index und korrekte Verwendungsmethode

Detaillierte Einführung in den MySql-Index und ko...

HTML-Head-Tag-Metadaten zum Erreichen einer Aktualisierungsumleitung

Code kopieren Der Code lautet wie folgt: <html...

Verwendung des MySQL-Stresstesttools Mysqlslap

1. MySQLs eigenes Stresstest-Tool Mysqlslap mysql...

Linux-Systemaufrufe für Betriebsdateien

Inhaltsverzeichnis 1. Öffnen Sie die Datei Parame...

Teilen des JS-nativen Quellcodes des Spiels 2048 (das Neueste im Internet)

Ich habe mich kürzlich mit Algorithmen beschäftig...

Unterschiede im Stundentrennzeichen zwischen Browsern

Beim Erstellen einer Webseite verwenden Sie manchm...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.20 winx64

In diesem Artikel erfahren Sie mehr über die Inst...

Detaillierte Installationshistorie von Ubuntu 20.04 LTS

In diesem Artikel wird die Erstellung einer USB-S...

Eine Lösung für einen Fehler in IE6 mit jquery-multiselect

Bei der Verwendung von jquery-multiselect (einem ...