Las aplicaciones front-end angulares y de arranque se ejecutan en contenedores docker. Soy dueño de un dominio y con el proxy inverso Nginx para pasar las solicitudes de front-end, back-end apropiado que es spring-boot. Default 80 está sirviendo mi front-end para más aclaraciones.
Detalles previos:
Sample domain : xyz.com Front-end app : running on default port 80 Back-end spring-boot app: running on port 8085Primera parte de mi configuración de Nginx:
server { listen 80; listen [::]:80; server_name xyz.com; location / { root /var/www/site; try_files $uri $uri/ /index.html; location /api{ proxy_pass http://localhost:8085; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header connection "upgrade"; } } Cuando xyz.com , mi sitio web está en funcionamiento y algunas rutas de front-end:
: xyz.com/blogs : xyz.com/images : xyz.com/newsEstas son mis rutas de descanso en el back-end de springboot:
: xyz.com/api/article/getAll : xyz.com/api/public/mail/sendmailLa parte interesante es que no puedo servir mi aplicación de back-end que se ejecuta en el puerto 8085.
Esto significa que siempre que mi URL venga con /api/* debería ir al puerto 8085 pero en mi caso dice "404 no encontrado".
¿Por qué mis rutas de descanso no funcionan, me perdí algo en mi configuración de Nginx?
Nota: el contenedor de arranque de Spring funciona bien, no hay problemas en la ventana acoplable o la aplicación, creo que el problema se debe a la configuración de Nginx, en particular al bloque de ubicación.
El bloque está sirviendo el / primero seguido por el /api . Esto debe revertirse y luego las cosas funcionarán normalmente.
server { listen 80; listen [::]:80; server_name xyz.com; location /api{ proxy_pass http://localhost:8085; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header connection "upgrade"; } location / { root /var/www/site; try_files $uri $uri/ /index.html; } }Tuve el mismo problema y lo resolví de esa manera. Consulte el proxy inverso NGINX para varias ubicaciones que no funcionan para obtener más ayuda.