nginx: 502 плохой шлюз при использовании node.js Varnish и Stunnel

nginx: 502 плохой шлюз при использовании node.js Varnish и Stunnel

Я следил заэтот урок, и все, кажется, работает нормально, за исключением моей настройки nginx. Мое node.jsприложение работает на порту 1337, Varnish работает на порту 80, stunnel на 443 и nginx на 8080.

Я могу правильно подключиться к своему приложению, если указываю порт https://example.com:1337, но при посещении получаю только https://example.comошибку 502 Bad Gateway.

Вот вывод моего журнала 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"

а это мой файл конфигурации nginx для этого домена:

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

Я бегу:

  • Убунту 12.04
  • nginx/1.1.19
  • ошеломить 4.42
  • лак-3.0.2

решение1

Итак, первое.. в этой ссылке говорилось, что они используют nginx только для статических файлов и html-файлов для веб-сайта. Вы пытаетесь проксировать nodejs/websockets через nginx.

Так почему же на этом сайте говорят, что этого делать нельзя? В основном потому, что вебсокеты не поддерживаются в nginx в стабильной версии.

Websockets — это спецификация 1.1, а nginx — только 1.0. Теперь, когда это было сказано... вы можете скомпилировать, как tcp_proxy для nginx, но просто проксировать его с помощью Varnish, как указано в этом URL. Не имеет большого смысла идти

лак->nginx->узел

просто делать

лак -> узел

Связанный контент