nginx: 502 puerta de enlace incorrecta al usar barniz y stunnel de node.js

nginx: 502 puerta de enlace incorrecta al usar barniz y stunnel de node.js

he estado siguiendoeste tutorialy todo parece funcionar bien, excepto mi configuración de nginx. Mi node.jsaplicación se ejecuta en el puerto 1337, el barniz se ejecuta en el puerto 80, el stunnel en el 443 y nginx en el 8080.

Puedo acceder a mi aplicación correctamente cuando especifico el puerto, https://example.com:1337pero todo lo que obtengo cuando la visito https://example.comes un 502 Bad Gatewayerror.

Este es el resultado de mi registro 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"

y este es mi archivo de configuración nginx para ese dominio:

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;
    }
}

Estoy corriendo:

  • ubuntu 12.04
  • nginx/1.1.19
  • túnel 4.42
  • barniz-3.0.2

Respuesta1

Entonces, lo primero... ese enlace decía que solo están usando nginx para archivos estáticos y archivos html para el sitio web. Estás intentando hacer proxy de nodejs/websockets a través de nginx.

Entonces, ¿por qué ese sitio web dice que no hagamos eso? Principalmente porque los websockets no son compatibles con nginx en una versión estable.

Websockets tiene una especificación 1.1 y nginx tiene solo una especificación 1.0. Dicho esto... puedes compilar como tcp_proxy para nginx, pero simplemente proxy con barniz como se indica en esa URL. No tiene mucho sentido ir

barniz->nginx->nodo

solo haz

barniz -> nodo

información relacionada