Lösung für den Konflikt zwischen Nginx und Backend-Port

Lösung für den Konflikt zwischen Nginx und Backend-Port

Frage:

Bei der Entwicklung des Alice-Verwaltungssystems habe ich festgestellt, dass alle Backend-Schnittstellen bei der ersten Anforderung 404-Fehler generierten, beim zweiten Mal jedoch erfolgreich waren.

Positionierungsproblem

Ich habe das Nginx-Fehlerprotokoll überprüft und den folgenden Fehler gefunden. Ich dachte fälschlicherweise, dass der Fehler auftrat, weil der html Ordner nicht über ausreichende Berechtigungen verfügte, wodurch die Datei nicht geschrieben werden konnte. Nachdem ich die Berechtigungen geöffnet hatte, stellte ich fest, dass es immer noch nicht funktionierte. Ich suchte bei Google, konnte aber immer noch keine Lösung finden. Ich habe es vorerst beiseite gelegt. Als ich am nächsten Tag erneut nach dem Fehler suchte, öffnete ich versehentlich Port 8081. Beim Aufruf localhost:8081 und 127.0.0.1:8081 waren die Inhalte unterschiedlich.

Zu diesem Zeitpunkt fragte ich mich, ob es einen Portkonflikt gab, also öffnete ich die Datei und fand die nginx -Konfigurationsdatei und unsere Projektkonfigurationsdatei. Ich stellte fest, dass es einen Portkonflikt gab. Wenn Sie auf das Backend zugreifen, werden Sie feststellen, dass die Anforderung an statische Nginx-Dateien gesendet wird, sodass ein 404-Fehler generiert wird.

Server {
  hören Sie 8081;
  Servername 127.0.0.1;

  #Zeichensatz koi8-r;

  #access_log Protokolle/Host.access.log Haupt;

  Standort / {
    Stamm-HTML;
    Index Index.html Index.htm;
  }
Server {
  # Plattform-Port-Listener 8100;
  Servername localhost;

  Standort / {
    Proxy-Passwort http://localhost:4200/;
  }

  Standort /api/ {
    Proxy-Passwort http://localhost:8081/;
  }
  #Fehlerseite 404 /404.html;

  # Server-Fehlerseiten auf die statische Seite /50x.html umleiten
  #
  Fehlerseite 500 502 503 504 /50x.html;
  Standort = /50x.html {
    root /usr/share/nginx/html;
  }
}

Problemumgehung

Ändern Sie den Backend-Port und die Nginx-Konfiguration des Projekts.

Verbleibende Probleme:

Wenn der Hintergrund gestartet wird, unterscheidet sich der Inhalt beim Zugriff localhost:8081 von dem von 127.0.0.1:8081 Derselbe Inhalt ist verfügbar, wenn der Hintergrund geschlossen wird.

Die Gründe können folgende sein:
localhost: Das System verwendet die Berechtigungen des aktuellen Benutzers auf diesem Computer für den Zugriff
127.0.0.1: Dies bedeutet, dass auf die lokale Maschine über das Netzwerk zugegriffen wird

Wenn Nginx mit dem Backend in Konflikt steht, warum greift es dann in ungeraden Zahlen auf interne Nginx-Dateien zu und in geraden Zahlen auf das Backend (warum kann es dieselbe Schnittstelle belegen)?

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Nginx-Reverseproxy und Lastausgleichspraxis
  • Tiefgreifendes Verständnis der Matching-Logik von Server und Standort in Nginx
  • Nginx-Zugriffssteuerungs- und Parameteroptimierungsmethoden
  • Detaillierte Erklärung der Best Practices für Django + uwsgi + Nginx online
  • So steigern Sie Ihre Web-Performance um das Dreifache, indem Sie einen Parameter in Nginx aktivieren
  • So verwenden Sie PHP zum Zählen der User-Agent-Daten von Nginx-Protokollen
  • So fügen Sie Nginx zu den Systemdiensten in CentOS7 hinzu
  • So stellen Sie mit Nginx mehrere Vue-Projekte unter demselben Domänennamen bereit und verwenden einen Reverse-Proxy
  • Python-Implementierungsbeispiel zum Überwachen von Unterschieden in Nginx-Konfigurationsdateien und Senden von E-Mail-Benachrichtigungen
  • So blockieren und verbieten Sie Webcrawler im Nginx-Server

<<:  Eine kurze Analyse des MySQL-Index

>>:  Detaillierte Erklärung des virtuellen DOM und des Diff-Algorithmus in React

Artikel empfehlen

Vue implementiert eine einfache Slider-Verifizierung

Dieses Artikelbeispiel zeigt die Implementierung ...

Gründe, warum MySQL 8.0-Statistiken ungenau sind

Vorwort Unabhängig davon, ob es sich um Oracle od...

So stellen Sie über Navicat eine Remoteverbindung zu MySQL her

Wenn Sie Navicat direkt für die Verbindung über I...

Nginx-Server fügt benutzerdefinierte Systemd-Dienstprozessanalyse hinzu

1. Nehmen Sie nginx als Beispiel Nginx mit dem Be...

Reiner CSS-Code zum Erzielen eines Drag-Effekts

Inhaltsverzeichnis 1. Beispiel für Drag-Effekt 2....

Detailliertes Beispiel des MySQL InnoDB-Sperrmechanismus

1. InnoDB-Sperrmechanismus Die InnoDB-Speicher-En...

CSS erzielt den „Bottom Absorption“-Effekt im Footer

Wir stoßen häufig auf dieses Problem: Wie kann ma...

Das Laufschrift-Tag in HTML erzielt einen nahtlosen Laufschrift-Effekt

Das <marquee>-Tag ist ein Tag, das paarweis...

HTML verwendet reguläre Ausdrücke zum Testen von Tabellenbeispielen

Hier ist ein Beispielcode für die Verwendung regu...