express-ws 部署到 VPS 服务器时不处理调用
Posted
技术标签:
【中文标题】express-ws 部署到 VPS 服务器时不处理调用【英文标题】:express-ws doesn't handle call when deployed to VPS server 【发布时间】:2017-09-11 18:47:56 【问题描述】:我使用 node.js + express 和 express-ws 依赖编写了后端。
在本地,一切正常。以前它被部署到red hat open shift,也没有任何问题。昨天我买了 VPS 配置它并在那里部署。除 websocket 外,一切正常。
我有启用 SSL 的 nginx,它在配置中与服务器相关的下一行
server
listen ipaddresshere:80 default;
server_name _;
location /
proxy_pass http://ipaddresshere:8080;
location /ws
proxy_pass http://ipaddresshere:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
我还有其他配置位置,但它们是由 VestaCP 和 https://certbot.eff.org/ 生成的
我知道对 /ws 路由的请求即将发送到 node.js 应用程序(我正在记录它)。但它不会交给那个处理程序
app.ws('/ws', SocketsHandler.registerWs);
最后它与我的最后一个处理程序匹配并返回 404
app.get('*', ErrorHandler.notFound);
问题:为什么 WS 库在 VPS 环境中不起作用但我在控制台中没有看到任何错误...?
附: Localy 我在没有 SSL 和 nginx 的情况下运行应用程序
wsServer.on('connection', function (socket) ...)
【问题讨论】:
本地是否可以使用 Nginx? 他说已经有@TarunLalwani 你把socket url从ws://
改成wss://
了吗?
当然在 https:我连接到 wss:。如果我不更改它,我会看到与 SOP 相关的错误。
【参考方案1】:
我发现我的配置被其他文件覆盖。所以不是连接“升级”;服务器正在接收连接“关闭”..
【讨论】:
以上是关于express-ws 部署到 VPS 服务器时不处理调用的主要内容,如果未能解决你的问题,请参考以下文章
我可以构建一个 Web 应用程序,以便将其部署到云或专用服务器/VPS 吗?如何?
用capistrano+Nginx+Passenger+MYSQL部署rails到VPS。
express-ws 中间件无法正确创建 websocket 服务器