
Estou construindo uma solução com vários módulos. Cada módulo é um aplicativo ReactJs e estou tentando configurar o nginx para publicá-lo no mesmo domínio. Por exemplo:
http://domínio-aplicativo/autenticação
http://domínio-aplicativo/administrador
http://domínio-aplicativo/painel
http://domínio-aplicativo/vendas
Meu diretório público para nginx fica assim:
|---/var/www
|----/auth
|----/admin
|----/dashboard
|----/sales
onde auth, admin, dashboard e sales são subpastas para cada projeto.
Minha configuração do 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;
}
}
A subpasta de cada projeto tem uma estrutura semelhante a esta
O problema é quando o acessohttp://domínio-aplicativo/admin, por exemplo, o aplicativo tenta carregar os arquivos estáticos na raiz em vez da subpasta do projeto
GET http://localhost:9000/static/js/main.6314dcaa.js net::ERR_ABORTED
o correto seria obter arquivosadministradorsubpasta como esta:
GET http://localhost:9000/admin/static/js/main.6314dcaa.js
Qual é a melhor abordagem para corrigir a configuração do nginx para isso?
Responder1
Acho que o que você está tentando realizar pode ser feito expandindo a seção raiz de cada local assim:
location /admin {
root /var/www/admin;
}
location /dashboard {
root /var/www/dashboard;
}
location /sales {
root /var/www/sales;
}
Mas isso seria o mesmo que ter apenas
location / {
root /var/www/
}
Já que uma chamada para http://application-domain/admin
seria avaliada como /var/www/admin
.
A primeira solução ocultaria qualquer outra coisa, /var/www/
pois não há regra de localização para acessar, digamos http://application-domain/private
.