Я слежу этот учебник, и, похоже, все работает нормально, за исключением моей настройки 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;
}
}
Я бегу:
Итак, во-первых ... эта ссылка говорит, что они используют nginx только для статических файлов и html-файлов для веб-сайта. Вы пытаетесь проксировать nodejs / websockets через nginx.
Так почему же на этом веб-сайте сказано не делать этого? В основном потому, что веб-сокеты не поддерживаются в nginx в стабильной версии.
Websockets - это спецификация 1.1, а nginx - только 1.0. Теперь, когда сказано ... вы можете скомпилировать как tcp_proxy для nginx, но просто проксируйте его с помощью varnish, как указано в этом URL. Нет смысла идти
лак-> nginx-> узел
просто сделать
лак -> узел