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

Detaillierte Schritte zur Installation von MySQL 5.7 über YUM auf CentOS7

1. Gehen Sie zu dem Speicherort, an dem Sie das I...

Die perfekte Lösung, um das Passwort in mysql8.0.19 zu vergessen

Lesetipp: MySQL 8.0.19 unterstützt Kontosperrfunk...

Erklärung des HTML-Codes der Webseite: geordnete Liste und ungeordnete Liste

In diesem Abschnitt lernen wir Listenelemente in ...

Beispiele für einige Verwendungstipps für META-Tags in HTML

HTML-Meta-Tag HTML-Meta-Tags können verwendet wer...

Die Qualitäten und Fähigkeiten, die ein Webdesigner haben sollte

Webdesign ist eine aufstrebende Randbranche, die n...

Implementierung eines Element-Eingabefelds, das automatisch den Fokus erhält

Beim Erstellen eines Formulars in einem aktuellen...

Konzept und Anwendungsbeispiele für die MySQL-Indexkardinalität

Dieser Artikel erläutert anhand von Beispielen da...

Tiefgreifendes Verständnis der Verwendung von Vue

Inhaltsverzeichnis Verstehen Sie das Kernkonzept ...

Ein praktischer Bericht über einen durch den MySQL-Start verursachten Unfall

Inhaltsverzeichnis Hintergrund So ermitteln Sie, ...

Node.js verwendet die Express-Fileupload-Middleware zum Hochladen von Dateien

Inhaltsverzeichnis Initialisieren des Projekts Sc...

my.cnf (my.ini) wichtige Parameteroptimierungs-Konfigurationsanweisungen

MyISAM-Speicher-Engine Die MyISAM-Speicher-Engine...

Zwei Möglichkeiten, die CSS-Priorität zu verstehen

Methode 1: Werte hinzufügen Gehen wir zu MDN, um ...

Detaillierte Verwendung des Kubernetes-Objektvolumens

Überblick Volume ist die Abstraktion und Virtuali...

4 Prinzipien für sauberes und schönes Webdesign

In diesem Artikel werden diese 4 Prinzipien im Hi...