La aplicación Nginx Angular no puede acceder a la API REST en localhost en producción

La aplicación Nginx Angular no puede acceder a la API REST en localhost en producción

He buscado bastante y todavía no he encontrado una solución que funcione para mi problema...

Tenemos una aplicación NodeJS que es una aplicación Express que expone una API REST en localhost:3000. También tenemos una aplicación AngularJS que se construye (ng build --prod) y luego se sirve mediante Nginx. En una máquina local, todo funciona bien. Cuando lo puse en producción, la aplicación Angular no puede acceder a ninguno de los puntos finales de la API.

Información de encabezados XHR

Salida de la consola del desarrollador

Inicialmente, pensé que esto podría ser un problema de CORS, así que ajusté mi configuración de Nginx para que quedara de la siguiente manera:

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';
     }
        }
}

Eso no resolvió el problema. No hay información en ninguno de los registros de Nginx y puedo acceder con éxito a la API REST a través de curl cuando inicio sesión en el servidor. Estoy atascado. Se agradece cualquier ayuda.

Respuesta1

Resulta que Angular no puede resolver localhost, pero usar 127.0.0.1 funciona bien.

información relacionada