Como configurar dois aplicativos Node.js em uma configuração nginx

4

Cenário:

O primeiro aplicativo node.js está sendo executado em 127.0.0.1:8888 e veiculando somente uma rota 'domain.com/track.gif'

O segundo aplicativo node.js está sendo executado em 127.0.0.1:3000 e é um painel para estatísticas reunidas pelo primeiro aplicativo e está disponível em 'domain.com' (e outras rotas como 'domain.com/login' ou ' domain.com/dashboard ', etc)

Quando eu uso essa configuração abaixo - somente para o primeiro aplicativo, o primeiro aplicativo funciona muito bem, ele serve esse arquivo gif de rastreamento quando eu clico em "domain.com/track.gif":

upstream tracker {
  server 127.0.0.1:8888;
}

server {
  listen 0.0.0.0:80;
  server_name www.domain.com domain.com;
  access_log /var/log/nginx/domain_access.log;
  error_log /var/log/nginx/domain_error.log;

  location /track.gif {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    proxy_pass http://tracker;
    proxy_redirect off;
  }
}

Como adicionar outro (segundo) aplicativo node.js a essa configuração para cuidar de todo o roteamento de rotas como 'domain.com/' ou 'domain.com/dashboard' ou 'domain.com/login'?

Obrigado antecipadamente!

    
por Pono 06.02.2012 / 16:25

1 resposta

4

Adicione um segundo bloco de localização. Ele corresponderá a qualquer caminho, exceto /track.gif.

upstream tracker {
  server 127.0.0.1:8888;
}

server {
  listen 0.0.0.0:80;
  server_name www.domain.com domain.com;
  access_log /var/log/nginx/domain_access.log;
  error_log /var/log/nginx/domain_error.log;

  location /track.gif {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    proxy_pass http://tracker;
    proxy_redirect off;
  }

  location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    proxy_pass http://127.0.0.1:3000;
    proxy_redirect off;
  }
    
por 06.02.2012 / 16:47

Tags