Estou executando dois nodejs
servidores em minha máquina e quero que mydomain.example.com/
seja atendido por um dos servidores, exceto mydomain.example.com/exception
. Estou usando nginx
e tentei fazer isso, mas não funcionou. Como isso pode ser feito?
server {
listen 80;
server_name mydomain.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 default_server ssl;
server_name mydomain.example.com;
keepalive_timeout 70;
ssl_certificate /etc/chained.crt;
ssl_certificate_key /etc/key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
proxy_pass http://localhost:8081;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
location /exception {
proxy_pass http://localhost:9000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
EDITAR :
Meu problema é que o pedido de mydomain.example.com/exception
é servido pelo servidor na porta 8081, não no 9000.
EDIT 2 :
Eu interpretei mal o comportamento da edição anterior. mydomain.example.com/exception
é atendido pelo servidor na porta 9000, mas esperava que mydomain.example.com/exception
fosse a raiz desse servidor, mas isso não aconteceu. Achei que essa configuração tornaria mydomain.example.com/exception
o equivalente a mydomain.example.com:9000
, mas isso torna mydomain.example.com:9000/exception
. Portanto, a pergunta atualizada seria: Eu quero que mydomain.example.com/exception
funcione exatamente da mesma maneira como se eu tivesse acessado o servidor pela porta designada 9000. Como isso pode ser feito?
Tags nginx