Meteor WebSocket 与 nginx 握手错误 400

2024-04-02

我设法在我的基础设施(Webfactions)上部署 Meteor。 该应用程序似乎工作正常,但当我的应用程序启动时,我在浏览器控制台中收到以下错误:

WebSocket connection to 'ws://.../websocket' failed: Error during WebSocket handshake: Unexpected response code: 400


WebSocket 速度很快,您不必(也不应该)禁用它们。

造成这个错误的真正原因是Webfactions使用了nginx,而nginx配置不当。以下是如何正确配置 nginx 来代理 WebSocket 请求 http://nginx.org/en/docs/http/websocket.html, 通过设置proxy_set_header Upgrade $http_upgrade; and proxy_set_header Connection $connection_upgrade;:

# we're in the http context here
map $http_upgrade $connection_upgrade {
  default upgrade;
  ''      close;
}

# the Meteor / Node.js app server
server {
  server_name yourdomain.com;

  access_log /etc/nginx/logs/yourapp.access;
  error_log /etc/nginx/logs/yourapp.error error;

  location / {
    proxy_pass http://localhost:3000;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;  # pass the host header - http://wiki.nginx.org/HttpProxyModule#proxy_pass

    proxy_http_version 1.1;  # recommended with keepalive connections - http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_http_version

    # WebSocket proxying - from http://nginx.org/en/docs/http/websocket.html
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
  }

}

这是基于 nginx 配置的改进David Weldon 的 nginx 配置 https://stackoverflow.com/questions/18003689/recommended-nginx-configuration-for-meteor。毛泽东已经达到了非常相似的配置 https://stackoverflow.com/a/24497020/1269037.

请记住还要设置HTTP_FORWARDED_COUNT http://docs.meteor.com/#/full/meteor_onconnection环境变量设置为应用程序前面的代理数量(通常为 1)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Meteor WebSocket 与 nginx 握手错误 400 的相关文章

  • Nodejs - 处理和发送多部分请求,

    我的应用程序在 Nodejs 服务器上运行 Node Js 还充当来自应用程序的请求的中间件 代理 因此 从浏览器开始 所有 REST 调用都会转到 NodeJs 然后转到 Java API 我发现处理多部分表单数据的请求时出现问题 我在
  • Visual Studio 代码断点在使用 TypeScript 的 Node.js 上不起作用

    我尝试了很多解决方案 但没有人适合我 代码执行 但我无法放置断点并调试它 请你帮助我好吗 我尝试过以下 VSCode 配置脚本 type node request launch name Typescript Node JS program
  • NodeJs 控制台中的 GET /bla - - ms - - 是什么意思?

    当我进入页面时 bla在我的 NodeJS 应用程序中 控制台打印出 GET bla ms 用文字来说 为了更容易谷歌搜索 dash dash ms dash dash 这是什么意思 这是输出morgan https github com
  • 我应该如何在http post请求的请求负载中传递json数据

    我想知道如何在有效负载中传递 json 请求 例如 name test value test var post data var post options host this host path path method POST heade
  • Child_process 处理带有回车符 (\r) 的 STDOUT 流

    我正在编写一个简单的应用程序 它允许工作中的内部系统请求从远程服务器到使用 REST 调用发起的另一个远程服务器的复制过程 使用 rsync 我已经对express框架足够熟悉 并且刚刚开始尝试child process库 并偶然发现了一个
  • nodejs mocha suite 未定义错误

    我正在尝试使用摩卡运行一些测试 但似乎无法克服这个错误 E tdd nodejs cart gt mocha cart test js node js 201 throw e process nextTick error or err Re
  • express 或express-generator:我需要两者吗?

    只是探索 Node js 并遇到了 Express 在 npm 存储库站点上https www npmjs com package express https www npmjs com package express它明确指出安装是 np
  • npm install 命令下载所需包的源位置是什么?

    我试图获取命令 npm install 尝试连接的源位置 URL 并根据 package json 文件获取要下载的依赖包 并将其放置在本地框中 从下面提到的网址 http www tutorialspoint com nodejs nod
  • Node.js 检测两个猫鼬查找何时完成

    我正在尝试使用自动完成功能初始化两个输入library https www devbridge com sourcery components jquery autocomplete 当我加载页面时 我将触发 Ajax 来初始化两个输入文本
  • 如何清除NPM的https代理设置?

    如何清除NPM之前的ssl代理设置 好吧 我搜索了很多 但我得到的所有帖子主要是关于如何set公司网络中的代理 我尝试将代理设置为空 npm config set http proxy npm config set https proxy
  • mongodb 聚合 - 累积字段的不同组值

    如果我有Player表格文件 name String score Int 我有Group文档 其中组代表玩家列表 groupName String players ObjectID 玩家可以属于多个组 我想做一个聚合Player文档 按以下
  • Mongoose 独特的验证不起作用。保存重复条目

    我正在开发一个 NodeJS 应用程序 其中express是框架 MongoDB是数据库 我正在使用猫鼬插件 我有一个父母模型 我已经添加了独特 真实到场 mobile 但是每当我添加相同的手机号码时 唯一性验证就会失败 除了保存重复的文档
  • 通过 ESI:include 设置 Cookie,如何?

    我正在尝试使用 esi 在我的网站上创建忍者缓存 这个想法是 该网站大部分是静态的 我只需要在用户是否登录时做一些花哨的事情 所以我试图在页面A上放置一个 并在页面B的应用程序中设置触发器 这样我就可以将页面 A 缓存在 varnish 上
  • 如何将函数设置为 multer 上的限制参数?

    在这个问题之后 我可以使用 multer 和单个 html 表单上传不同文件夹中的多个文件吗 https stackoverflow com questions 39726862 cani upload many files in diff
  • 从 Nodejs 提供二进制/缓冲区/base64 数据

    我在从节点提供二进制数据时遇到问题 我开发了一个名为的节点模块节点说话它执行 TTS 文本到语音 并返回 Base64 编码的音频文件 到目前为止 我这样做是为了转换base64到缓冲区 二进制文件 然后提供它 var src Base64
  • Node Sass 没有绑定您当前的环境

    我在 SO 上看到过很多这样的问题 但似乎没有一个能解决或匹配问题 Node Sass 找不到适合您当前环境的绑定 带有 Node js 6 x 的 Windows 64 位 奇怪的是 我没有安装 Node js 6 x 从命令行 node
  • Meteor:使用 Sessions 和 ReactiveVar

    你应该什么时候使用Session and ReactiveVar I use Session变量作为组件之间的通信媒介 让我们以 Stackoverflow 为例 我标记了三个假设的组件 让我们看看filters成分 如果您点击Tags那么
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • WordPress 3.0 .htaccess 到 nginx 重写规则的转换

    RewriteEngine On RewriteBase BASE uploaded files RewriteRule files index php L RewriteCond REQUEST URI wp content plugin
  • 使用 MongoDB 和 Nodejs 插入和查询日期

    我需要一些帮助在 mongodb 和 nodejs 中按日期查找记录 我将日期添加到抓取脚本中的 json 对象 如下所示 jsonObj last updated new Date 该对象被插入到 mongodb 中 我可以看到如下 la

随机推荐

  • 找不到列“dbo”或用户定义函数或聚合“dbo.Splitfn”,或者名称不明确

    我使用了以下分割函数 CREATE FUNCTION dbo Splitfn String varchar 8000 Delimiter char 1 returns temptable TABLE items varchar 8000 a
  • 加密 web.config 失败错误

    我知道有人已经问过有关加密 web config 的问题 我还尝试加密我的测试配置文件 但我收到此错误 aspnet regiis pef connectionStrings C encryptedWeb config 正在加密配置部分 无
  • 从 Javascript 方法返回全局变量 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有一个方法 function ca
  • 在 PySpark 中读取 Lzo 文件

    我是 Spark 新手 我的文件夹中有一堆 LZO 索引文件 索引已完成 如上所示https github com twitter hadoop lzo https github com twitter hadoop lzo 文件如下 1
  • 如何检查所有列表项是否具有相同的值并返回它,或者如果没有则返回另一个值?

    如果列表中的所有项目都具有相同的值 那么我需要使用该值 否则我需要使用 otherValue 我想不出一个简单明了的方法来做到这一点 当列表为空时 它应该返回 其他 值 也可以看看编写对集合中的第一项具有特殊逻辑的循环的巧妙方法 https
  • JQGRID , 获取过滤后的所有行

    过滤 JQgrid 后 我无法获取所有行 分页 我试过 gt var myData grid jqGrid getGridParam data var myData grid jqGrid getRowData 但第一个选项给出了所有行 并
  • 崩溃时退出代码

    我想通过 shell 脚本知道应用程序是否崩溃 如果应用程序崩溃 退出代码是什么 应用程序的退出代码将位于 shell 变量中 如果您的应用程序崩溃 即操作系统认为它做了坏事 并导致它终止 向其发送信号 那么这会反映在退出状态中 这是我使用
  • 在 Excel VBA 中使用 COM 插件中的 CLR 类吗?

    我有一个 Excel VSTO COM 插件 我可以成功加载 Excel VBA 中的引用 我可以交换基本类型 如字符串 但我也可以在 VBA 中使用我的外接程序中的复杂类吗 假设我有 C 类 public class TestClass
  • 在 ggplot2 中使用 geom_point 有条件地使用抖动

    I have a graph with 12 variables divided into two groups I can t use facets but using colour and shape I have been able
  • 连接或级联多个预训练的 keras 模型

    我正在尝试构建一组串联或级联 实际上甚至不知道这是否是正确的定义 的模型 为了简单起见 我的基本模型如下所示 Input L1 1 L1 2 Dense
  • 通过 Javascript 解析 JSON 对象(对象列表)并在其中循环?

    好吧 我知道出了点问题 但我不明白是什么 我从我编写的 Web 服务中读取了 Service 的 ArrayList 采用 JSON 媒体类型 访问该地址会返回 json 字符串 现在我正在尝试制作一个网页来显示该值并查看每 3 秒请求一次
  • 状态栏和底部应用栏遮挡 WP 8.1

    我使用以下代码使状态栏显示在内容顶部 并设置背景不透明度 0 var applicationView Windows UI ViewManagement ApplicationView GetForCurrentView applicati
  • jQuery PickMeUp datepicker:禁用日期数组

    我正在使用一个名为的 jQuery 日期选择器插件PickMeUp https github com nazar pc PickMeUp 我的日期选择器可以工作 但无法弄清楚如何禁用其中的日期 我的计划是在日期选择器日历上禁用一系列日期 我
  • Exchange ItemID 与 Outlook 加载项的 GlobalAppointmentID 不同

    我遇到的问题是 使用 Outlook FormRegion 创建的 Outlook 约会的 GlobalAppointmentID 与使用 EWS 托管 API 时的 ItemID 不同 我正在创建一个 Outlook 插件 允许用户将客户
  • 1.7 中 javax.sql.CommonDataSource 添加了新方法

    尝试针对 java 1 7 编译我的应用程序 我发现 javax sql CommonDataSource 以及 j s DataSource 中 添加了一个新方法 getParentLogger 你可以比较一下通用数据源 1 7 http
  • 如何将 Guava ServiceManager 与 Guice 注入结合使用

    如上所述here https plus google com 118010414872916542489 posts 86dUfeQk5dH Guava ServiceManager 可以通过以下方式获取 ServiceManager ma
  • 检查 keyDown event.modifierFlags 会产生错误

    我继承 NSTextView 并覆盖 keyDown 我想检测命令键组合 例如 Command L 苹果的文档 https developer apple com library mac documentation Cocoa Concep
  • 酶测试嵌套组件的方法

    我正在尝试使用 Enzyme 来测试组件的方法 我知道执行此操作的典型方法是使用酶instance method 问题是 这只适用于root组件和我的组件需要包装在两个上下文提供程序中才能渲染 即react router和apollo客户端
  • 将 WPF 窗口附加到另一个进程的窗口

    我想编写一个 WPF 应用程序 该应用程序停靠到在另一个进程中运行的应用程序 这是我无法控制的第 3 方应用程序 理想情况下 我希望能够定义应用程序是停靠在左侧还是右侧 这是我想做的一个例子 我尝试实现以下 2 个示例 但没有成功 将窗口附
  • Meteor WebSocket 与 nginx 握手错误 400

    我设法在我的基础设施 Webfactions 上部署 Meteor 该应用程序似乎工作正常 但当我的应用程序启动时 我在浏览器控制台中收到以下错误 WebSocket connection to ws websocket failed Er