
Estoy creando una solución con varios módulos. Cada módulo es una aplicación ReactJs y estoy intentando configurar nginx para publicarlo en el mismo dominio. Por ejemplo:
http://dominio-aplicación/autenticación
http://dominio-aplicación/administración
http://dominio-aplicación/panel
http://dominio-aplicación/ventas
Mi directorio público para nginx permanece así:
|---/var/www
|----/auth
|----/admin
|----/dashboard
|----/sales
donde autenticación, administrador, panel y ventas son subcarpetas para cada proyecto.
Mi configuración del servidor nginx:
server {
listen 9000 default_server;
listen [::]:9000 default_server;
server_name localhost;
index index.html;
location / {
root /var/www/auth;
}
location /admin {
root /var/www;
}
location /dashboard {
root /var/www;
}
location /sales {
root /var/www;
}
}
La subcarpeta de cada proyecto tiene una estructura similar a esta
El problema es cuando se accedehttp://dominio-aplicación/admin, por ejemplo, la aplicación intenta cargar los archivos estáticos en la raíz en lugar de en la subcarpeta del proyecto
GET http://localhost:9000/static/js/main.6314dcaa.js net::ERR_ABORTED
lo correcto sería obtener archivos enadministraciónsubcarpeta como esta:
GET http://localhost:9000/admin/static/js/main.6314dcaa.js
¿Cuál es el mejor enfoque para corregir la configuración de nginx para esto?
Respuesta1
Creo que lo que intentas lograr se puede lograr expandiendo la sección raíz de cada ubicación de esta manera:
location /admin {
root /var/www/admin;
}
location /dashboard {
root /var/www/dashboard;
}
location /sales {
root /var/www/sales;
}
Pero eso sería lo mismo que tener sólo
location / {
root /var/www/
}
Dado que una llamada a http://application-domain/admin
se evaluaría como /var/www/admin
.
La primera solución ocultaría cualquier otra cosa, /var/www/
ya que no existe una regla de ubicación para acceder, por ejemplo http://application-domain/private
.