Die Nginx Angular App kann in der Produktion nicht auf die REST-API auf dem lokalen Host zugreifen

Die Nginx Angular App kann in der Produktion nicht auf die REST-API auf dem lokalen Host zugreifen

Ich habe ziemlich viel gesucht und noch immer keine Lösung für mein Problem gefunden ...

Wir haben eine NodeJS-Anwendung, die eine Express-Anwendung ist, die eine REST-API auf localhost:3000 verfügbar macht. Wir haben auch eine AngularJS-Anwendung, die erstellt (ng build --prod) und dann von Nginx bereitgestellt wird. Auf einem lokalen Computer funktioniert alles einwandfrei. Wenn ich sie in Produktion bringe, kann die Angular-Anwendung auf keinen der API-Endpunkte zugreifen.

Informationen zu XHR-Headern

Ausgabe der Entwicklerkonsole

Zunächst dachte ich, dass es sich um ein CORS-Problem handeln könnte, daher habe ich meine Nginx-Konfiguration wie folgt angepasst:

server {
        listen 80 default_server;
        listen [::]:80 default_server;


        root /var/www/html;

        index index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
                if ($request_method = 'OPTIONS') {
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
        add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';

        add_header 'Access-Control-Max-Age' 1728000;
        add_header 'Content-Type' 'text/plain; charset=utf-8';
        add_header 'Content-Length' 0;
        return 204;
     }
     if ($request_method = 'POST') {
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
        add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
        add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
     }
     if ($request_method = 'GET') {
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
        add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
        add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
     }
        }
}

Das hat das Problem nicht gelöst. In keinem der Nginx-Protokolle sind Informationen enthalten und ich kann erfolgreich über curl auf die REST-API zugreifen, wenn ich beim Server angemeldet bin. Ich stecke fest. Jede Hilfe ist willkommen.

Antwort1

Wie sich herausstellt, kann Angular localhost nicht auflösen, aber die Verwendung von 127.0.0.1 funktioniert problemlos.

verwandte Informationen