Clojure WebSocket 应用的 nginx 生产环境设置

3
我正在尝试部署我的第一个Clojure WebSocket应用程序,我觉得我离成功很近了。本地得到了良好的响应,而且看起来端点想要面对外部世界(当我运行netstat时,我看到端口是开放的),但没有响应。我确定我在nginx中设置了一些不正确的东西。
我目前已经在该服务器上托管了几个其他网站,只想添加必要的配置,以便使发送到wss://domain.com:8001的请求与我的应用程序通信。
这是我现在正在使用的位置条目:
location / {
  proxy_pass http://localhost:8001;
  proxy_http_version 1.1;
  proxy_set_header Connection "";
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Host $http_host;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_redirect off;
  access_log /var/www/logs/test.access.log;
  error_log /var/www/logs/test.error.log;
}

能否有人帮我指明方向?我的猜测是我的配置文件里面可能过于复杂,并且其中的内容可能不正确。

** 编辑: ** 对于感兴趣的人,我在 gist 中分享了我的工作配置(基于Erik Dannenberg的回答)。

1个回答

1
你缺少两个标题,一个最小工作配置:

您缺少另外两个标题,一个最小的工作配置:

location  /  {
    proxy_pass http://backend;
    proxy_http_version 1.1;
    # add the two below
    proxy_set_header Upgrade websocket;
    proxy_set_header Connection upgrade;
    # optional, but helpful if you run into timeouts
    proxy_read_timeout 86400;
}

这个版本似乎可以工作。非常感谢,帮了大忙! - TrivialCase

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接