首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Websocket-rails在使用Nginx和Unicorn的生产环境中不起作用

Websocket-rails在使用Nginx和Unicorn的生产环境中不起作用
EN

Stack Overflow用户
提问于 2014-04-29 19:50:08
回答 1查看 4.4K关注 0票数 6

我有一个带有gem websocket-rails 0.7的Rails 3.2应用程序。

在开发机器上,一切工作正常

在生产环境下,我使用Nginx/1.6作为代理服务器,Unicorn作为http服务器。Thin在独立模式下使用(遵循https://github.com/websocket-rails/websocket-rails/wiki/Standalone-Server-Mode)。

nginx配置:

代码语言:javascript
复制
location /websocket {
   proxy_pass http://localhost:3001/websocket;
   proxy_http_version 1.1;
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "upgrade";
}

在后端,我有以下代码用于向客户端发送通知

代码语言:javascript
复制
WebsocketRails[:callback_requests].trigger 'new', call_request

在客户端,我使用以下命令获得了一个连接:

代码语言:javascript
复制
dispatcher = new WebSocketRails window.location.host + ':3001/websocket'
channel    = dispatcher.subscribe 'callback_requests'

但是客户端不会收到通知。

github - github.com/websocket-rails/websocket-rails/issues/211上的相关问题

EN

回答 1

Stack Overflow用户

发布于 2014-08-26 17:42:06

您的nginx配置正在将/websocket/下的请求与尾随的/进行匹配。这是/websocket/blah的目录组件。

如果你查看你的nginx访问日志文件,你会发现你对/websocket的请求被301重定向到了/websocket/

删除尾随的/

代码语言:javascript
复制
location /websocket {
   proxy_pass http://localhost:3001/websocket;
   proxy_http_version 1.1;
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "upgrade";
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23363874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档