Proxy todas las solicitudes al servidor backend

Proxy todas las solicitudes al servidor backend

Actualmente tengo una aplicación Angular que obtiene sus datos de un backend de Symfony. Al desarrollar, utilicé el ng servesistema proxy del servidor de desarrollo para redirigir las /apirutas /oauth-tokeny /mediaal servidor backend, y esto funcionó bien.

Ahora que quiero implementar la aplicación en un servidor web, configuro un servidor Nginx que sirve los archivos estáticos generados por la aplicación Angular integrada. Dado que el servidor de desarrollo ya no está allí para representar las solicitudes, tengo que hacerlo a través de los archivos de configuración de Nginx para tener un proxy inverso funcional.

Lo que simplemente necesito es que si solicito algo como GET http://localhost/api/products/1, esta solicitud pase a GET http://localhost:81/api/products/1. Esto debería ser igual para todos los demás métodos de solicitud: POST, PUT, PATCH, etc.

El problema es que parece que no puedo escribir un archivo conf que se adapte a mis necesidades para este caso de uso. Lo mejor que obtengo es una respuesta 302 o 405.

Aquí está el archivo conf que tengo actualmente:

server {
    server_name localhost;
    root /var/www/webapp;

    location / {
        try_files $uri $uri/ /index.html;
    }

    location ~ ^/(?:oauth-token|api|media)/ {
        proxy_pass http://localhost:81;
    }
}

El backend está alojado en el mismo servidor e instancia de nginx que el frontend, pero en un puerto diferente (puerto 81 en lugar de 80).

Intenté separar mi bloque de ubicación en 3 bloques separados para cada ruta en caso de que mi expresión regular o el pase de proxy fueran incorrectos, pero obtengo los mismos resultados:

    location /api/ {
        proxy_pass http://localhost:81/api/;
    }

    location /oauth-token/ {
        proxy_pass http://localhost:81/oauth-token/;
    }

También intenté eliminar las barras diagonales al final de la URL de paso del proxy para ver si ese era el problema, pero fue en vano.

Intenté seguir los consejos que encontré en otras publicaciones sobre Server Fault, pero lamentablemente ninguno funcionó para mí.

¿Pueden ayudarme a configurar este archivo para que estas solicitudes de API se envíen mediante proxy a mi servidor backend? Gracias.

información relacionada