Cenário:
O primeiro aplicativo node.js está sendo executado em 127.0.0.1:8888 e servindoapenas uma rota'domínio.com/track.gif'
O segundo aplicativo node.js está sendo executado em 127.0.0.1:3000 e é um painel para estatísticas coletadas pelo primeiro aplicativo e está disponível em 'domain.com' (e outras rotas como 'domain.com/login' ou 'domain.com /painel', etc)
Quando uso esta configuração abaixo - apenas para o primeiro aplicativo, o primeiro aplicativo funciona muito bem, ele exibe esse arquivo gif de rastreamento quando 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 esta configuração para cuidar de todo o roteamento para rotas como 'domain.com/' ou 'domain.com/dashboard' ou 'domain.com/login'?
Desde já, obrigado!
Responder1
Adicione um segundo bloco de localização. 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;
}