nginx: 502 gateway inválido ao usar verniz e stunnel node.js

nginx: 502 gateway inválido ao usar verniz e stunnel node.js

Eu tenho acompanhadoeste tutoriale tudo parece funcionar bem, exceto minha configuração do nginx. Meu node.jsaplicativo é 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:1337mas tudo o que recebo ao visitá-lo https://example.comé um 502 Bad Gatewayerro.

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ó

informação relacionada