Eu tenho acompanhadoeste tutoriale tudo parece funcionar bem, exceto minha configuração do nginx. Meu node.js
aplicativo é executado na porta 1337, o verniz é executado na porta 80, o stunnel na 443 e o nginx na 8080.
Posso acessar meu aplicativo corretamente quando especifico a porta, https://example.com:1337
mas tudo o que recebo ao visitá-lo https://example.com
é um 502 Bad Gateway
erro.
Esta é a saída do meu log nginx:
2012/08/25 14:13:59 [error] 6049#0: *1 no live upstreams while connecting to upstream, client: 127.0.0.1, server: example.com, request: "GET / HTTP/1.1", upstream: "http://app_example/", host: "example.com"
2012/08/25 14:14:02 [error] 6049#0: *1 upstream prematurely closed connection while reading response header from upstream, client: 127.0.0.1, server: example.com, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:1337/", host: "example.com"
e este é meu arquivo de configuração nginx para esse domínio:
upstream example.com {
server 127.0.0.1:1337;
}
server {
server_name example.com;
listen 8080;
location / {
proxy_pass http://example.com;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Estou correndo:
- Ubuntu 12.04
- nginx/1.1.19
- túnel 4.42
- verniz-3.0.2
Responder1
Então, a primeira coisa... esse link dizia que eles estão usando nginx apenas para arquivos estáticos e arquivos html para o site. Você está tentando fazer proxy nodejs/websockets sobre nginx.
Então, por que esse site diz para não fazer isso? Principalmente porque websockets não são suportados no nginx em uma versão estável.
Websockets têm especificação 1.1 e nginx tem apenas especificação 1.0. Dito isso .. você pode compilar como tcp_proxy para nginx, mas apenas proxy com verniz como aquele URL apontado. Não faz muito sentido ir
verniz->nginx->nó
apenas faça
verniz -> nó