Nginx routing root (/)

0

Estou tentando veicular um aplicativo por trás de um roteador Nginx. O aplicativo está sendo executado na porta 3000 e atende a várias rotas, como /api , /login e /logout . Eu também tenho conteúdo estático que quero mostrar para a rota / , bem como uma pasta /assets . No momento, minha configuração do nginx é assim:

server {
  listen 80;
  root /home/app/static;
  index index.html;
  location = / {
    try_files $uri $uri/ index.html;
  }
  location ^~ (api|login|logout) {
    proxy_pass http://localhost:3000;
    proxy_redirect off;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
  }
}

Eu gostaria de substituir (api|login|logout) por algum tipo de pega-tudo. Quando tento simplesmente usar location / { ... } , o nginx, por algum motivo, faz o proxy para o meu aplicativo, em vez de mostrar o conteúdo estático. O que está acontecendo aqui?

    
por Ryan Kennedy 28.04.2014 / 03:53

1 resposta

1

Você pode fazer isso com esses location blocks:

location / {
    try_files $uri $uri/ @proxy;
}
location @proxy {
    proxy_pass http://localhost:3000;
    proxy_redirect off;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
}
    
por 28.04.2014 / 04:11

Tags