Apache 配置:Websockets 代理 WSS 请求到 WS 后端

2024-01-23

预先感谢您的任何帮助。

我尝试使用 Apache 作为使用 WSS 的 Web 浏览器和后端 WS 服务器进程之间的代理。

浏览器 Apache RabbitMQ Stomp

我在 Apache 中正确设置了 HTTPS,并通过 443 提供页面。

在 Apache 站点配置中: .../sites-enabled/site.conf

<VirtualHost *:80>
    RewriteEngine on

    RewriteCond %{SERVER_NAME} =MYSERVER.com [OR]
    RewriteCond %{SERVER_NAME} =www.MYSERVER.com
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

</VirtualHost>


<VirtualHost *:443>
    SSLEngine On
    SSLProxyEngine On

    SSLCertificateFile      /etc/letsencrypt/live/MYSERVER.com/fullchain.pem
    SSLCertificateKeyFile   /etc/letsencrypt/live/MYSERVER.com/privkey.pem

    Redirect /wss /wss/
    ProxyPass /wss/ ws://127.0.0.1:15674/stomp/websocket/
    ProxyPassReverse /ws/ wss://127.0.0.1:15674/stomp/websocket/

    ErrorLog ${APACHE_LOG_DIR}/error.log
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    ServerName MYSERVER.com
    ServerAlias www.MYSERVER.com

</VirtualHost>

浏览器中的 JavaScript:

<script>
  var ws = new WebSocket('wss://MYSERVER.com:443/wss');
  var client = Stomp.over(ws);

在 Chrome 调试器中我看到: 与“wss://MYSERVER.com/wss”的 WebSocket 连接失败:WebSocket 握手期间出错:意外的响应代码:302

仅使用 ws 直接指向后端就可以很好地工作,但我需要让 wss 工作。

我尝试获得与此示例类似的解决方案,但无法:Apache:代理 websocket wss 到 ws https://stackoverflow.com/questions/31211828/apache-proxy-websocket-wss-to-ws


这条线Redirect /wss /wss/添加尾部斜杠/wss如果不存在(默认情况下,它是 302 重定向)。并且您正在尝试连接到wss://MYSERVER.com:443/wss,这解释了重定向。

Solution: 尝试连接到wss://MYSERVER.com:443/wss/(带有尾部斜杠)。现在应该可以按预期工作了。

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

Apache 配置:Websockets 代理 WSS 请求到 WS 后端 的相关文章

  • 如何使用 mod rewrite / htaccess 创建具有两个或多个参数的友好 URL?

    新手在这里重写Mod 我想在 URL 中传递两个 URL 参数 但采用更友好的格式 如果用户通过 example com blah123 sys 在本例中我应该能够提取 MySQL 记录 blah123 和模式类型 sys 这是例子 URL
  • 使用 htaccess 将 http://www、http:// 和 https://www 重定向到 https:

    在我的网站上 我在非 www 版本的域上安装了 SSL 证书 我想使用 htaccess 将 http www http non www 和 https www 重定向到 https 我可以将 www 转换为非 www 但 https ww
  • 有没有类似Wamp Server的东西? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想知道是否有人知道类似WAMP Server 的程序 包含 PHP MySQL Apache 的多合
  • 我怎样才能发现并生存被“Slashdotted”?

    在异常高的流量高峰中生存的好方法是什么 我的想法是 在某些触发点上 我的网站应该暂时切换到 低带宽 模式 切换到基本 HTML 页面 最少的图形 禁用可能会给数据库带来不必要负载的小部件 等等 我的想法是 监控CPU使用率 监控带宽 监控请
  • MySQL 与 PHP 的连接无法正常工作

    这是我的情况 我正在尝试使用 Apache 服务器上的 PHP 文件连接到 MySQL 数据库 现在 当我从终端运行 PHP 时 我的 PHP 可以连接到 MySQL 数据库 使用 php f file php 但是当我从网页执行它时 它只
  • 为什么index.html优先于index.php?

    我在服务器上有一个网站 主页是 example com index php 好的 我将一个名为 index html 的文件上传到服务器 根目录 当我在浏览器的 URL 栏中输入站点的域时 我感到惊讶 因为 index html 页面已加载
  • 使用 Apache 在本地网络上托管网站

    我目前在我的机器上使用 Apache 在本地测试 PHP 网站 我只是想知道如何允许连接到本地网络的计算机访问本地计算机上托管的网站 如果仅通过 IP 本地网络上的计算机应该能够访问您的计算机 假设您没有防火墙阻止端口 80 HTTP 完成
  • Celery 设计帮助:如何防止并发执行任务

    我对 Celery AMQP 相当陌生 正在尝试提出一个任务 队列 工作人员设计来满足以下要求 我有多种类型的 每用户 任务 例如 TaskA TaskB TaskC 这些 每用户 任务中的每一个都为系统中的一个特定用户读取 写入数据 因此
  • URL 中的 %2F 中断并且未引用所需的 .php 文件 [重复]

    这个问题在这里已经有答案了 我需要将 作为变量作为 URL 的一部分传递 我的结构如下所示 www domain com listings page 1 city Burnaby South type Townhome bedroom 2
  • 将 http 和 https 请求重定向到新主机

    在 Apache 2 4 6 中 我想重定向来自http A org foo and https A org foo to https B org foo 我正在使用以下指令
  • 如何从网站网址中隐藏 .html 扩展名

    我知道这个问题以前曾被问过 但有人知道隐藏 html 扩展名的好方法吗 我已经尝试了许多代码和许多答案https stackoverflow com https stackoverflow com 但我没有看到结果 那是我再问你一次 我有一
  • .htaccess 如果 URL 错误,请执行某些操作

    我正在做我的个人CMS http en wikipedia org wiki Content management system 我想在其中使用很酷 友好 的 URL 这是我的 htaccess 文件代码 RewriteEngine on
  • PHP 拒绝从 var_dump、print 等输出数据

    我目前正在运行 WAMP 服务器 并且在过去的 30 分钟内一直在尝试弄清楚我的项目如何以及为什么不会输出任何指定的 PHP 数据 起初我以为是因为我有一个 htaccess文件的output buffering被禁用 所以我删除了它 仍然
  • 如何在XAMPP服务器中实现类似路由器登录的用户认证?

    我正在尝试在我的 XAMPP 服务器中设置用户身份验证 类似于路由器在调用特定路由时提示输入用户名和密码的方式 我想了解底层协议以及浏览器如何识别服务器需要身份验证 谁能指导我完成在 XAMPP 中创建此身份验证协议的过程 我希望能够解释所
  • JavaScript WebSocket.send 方法会阻塞吗?

    如果我要发送大量Blob or ArrayBuffer通过 JavaScriptWebSocket通过其send方法 是否send方法调用会阻塞 直到发送数据为止 还是会复制数据以异步发送 以便调用可以立即返回 一个相关的 未回答的 问题是
  • cakephp 无法在 Ubuntu 上进行 url 重写

    全部 这次我尝试 cakephp 但我得到了 您的服务器上的 URL 重写未正确配置 1 帮我配置它 2 我不 不能使用 URL 重写 我可以知道这是 apache 和 htaccess 问题 例如 etc apache2 sites av
  • 如何让Spring RabbitMQ创建一个新的队列?

    根据我对rabbit mq的 有限 经验 如果您为尚不存在的队列创建新的侦听器 则会自动创建该队列 我正在尝试将 Spring AMQP 项目与rabbit mq 一起使用来设置侦听器 但出现错误 这是我的 xml 配置
  • 从 Django 运行 shell 命令

    我正在 Django 中开发一个网页 使用 apache 服务器 需要调用 shell 命令来启用 禁用一些守护进程 我尝试这样做 os system service httpd restart 1 gt HOME out 2 gt HOM
  • 无法查看神经节仪表板

    我已经使用 rpm 文件进行了 ganglia 设置 OS centOS 6 3 Server httpd gmond 和 gmetad 正在运行 当我在浏览器中加载它时收到 禁止错误 Forbidden You don t have pe
  • 通过浏览器关闭页面时出现 Websocket 错误:“已建立的连接被主机中的软件中止”

    我开发了一个实时通知系统Spring 4 代码可以在 Github 上找到 github com vdenotaris Spring Messaging https github com vdenotaris Spring Messagin

随机推荐

  • UIActivityViewController 在共享文件后关闭当前视图控制器

    UIActivityViewController 在共享文件后关闭呈现的视图控制器 这种情况仅发生在 iOS 13 中 有什么永久的解决办法吗 其他应用程序更新到 iOS 13 后似乎也存在此问题 class VC UIViewContro
  • Rails:为数据库适配器指定了“mysql2”,但未加载 gem

    显然有一个线程可以解决这个问题 但我已经尝试运行解决方案中给出的那些命令 由于某种原因我仍然遇到同样的错误 I run gem install mysql2 v 0 3 18 其次是bundle install 在我的终端上 然后我通过输入
  • 使用 C# 中的 WebBrowser 控件提交网页表单

    我在 SO 以及一般网络上看到了很多关于这个特定主题的帖子 大多数 如果不是全部 代码如下所示 private void btnSubmit Click object sender RoutedEventArgs e webBrowser1
  • 如何在 Visual Studio 中最好地处理巨大的源代码文件

    我正在开发一个大量使用代码生成的项目 它生成的一些文件包含超过 25 万行代码 VS 2K5 处理得还不错 但 R 4 01 每隔两分钟左右就会抛出一个内存不足异常 将它们拆分为部分类 单独的文件并不是短期内的选择 尽管可能会稍后 有什么聪
  • 观察到包 ID 'build-tools;20.0.0' 位置不一致

    gradlew parallel app assembleDebugTest 当我运行上面的命令时安卓工作室终端我收到此错误 Error并行执行是一个正在孵化的功能 在不一致的位置 sdk build tools android 4 4W
  • STL 中的比较器

    我正在使用 struct minHeap 使用priority queue生成最小堆 并且函数comp使用STL中给出的排序函数以相反的顺序打印数字 现在我的疑问是我不能在函数 sort 中使用 struct minHeap 也不能在pri
  • 使用背景图像自定义 UIBarbuttonitem

    我添加了一个 UIToolbar 实例和其顶部的按钮 每个按钮都属于 UIBarButtonItem 类 我的要求是每个按钮都有一个自定义的布局 我不想使用苹果提供的原生按钮样式 所以我在 Interface Builder 中有 3 个选
  • PIP 安装请求运行时错误:Python 2.7 中超出最大递归深度

    我是 Python 新手 面临以下问题 当我尝试使用命令安装 请求 模块时PIP install request 我收到错误 RuntimeError maximum recursion depth exceeded Command pyt
  • System.Drawing 可以在 Azure 网站中使用吗?

    我有一个网站 计划从一家老式网络托管公司迁移到 Microsoft Azure 它是一个 ASP NET 应用程序 使用 System Drawing 来呈现一些图形 我读过一些有关 Azure 网站不支持 GDI 的内容 这是否意味着 S
  • Angular ui-grid 双击行打开弹出窗口以编辑行

    VERSION 我正在使用 Angular ui grid 版本 3 0 0 RC 18 http ui grid info http ui grid info PROBLEM 我想在 ui grid 表中实现双击事件 特别是 我想在双击一
  • 是否可以始终使用“mov eax, 0x1”代替“mov rax, 0x1”?

    当组装这段代码时nasm BITS 64 mov eax 0x1 mov rax 0x1 我得到这个输出 b8 01 00 00 00 b8 01 00 00 00 这是操作码mov eax 0x1重复两次 这是否意味着mov rax 0x
  • 计算布尔值数组中真实成员的数量

    刚接触 javascript 我在计算布尔值数组中 true 的数量时遇到了麻烦 我正在尝试使用reduce 函数 有人可以告诉我我做错了什么吗 trying to count the number of true in an array
  • Android 画布绘制文本不工作

    我使用canvas的drawText方法制作了一个自定义视图 不知何故 任何 Jelly Bean 设备上都没有显示任何文本 它适用于 ICS 及以下版本 有谁知道此方法或任何相关方法从 API 15 到 16 是否发生了任何变化 编辑代码
  • JPA:不重写实体中的 equals() 和 hashCode() 吗?

    看完之后本文 http community jboss org wiki EqualsandHashCode 我倾向于不完全覆盖 equals 和 hashCode 在那篇文章的摘要中 关于根本没有 eq hC 列 唯一的结果是我无法执行如
  • __PRETTY_FUNCTION__、__FUNCTION__、__func__ 之间有什么区别?

    有什么区别 PRETTY FUNCTION FUNCTION func 它们记录在哪里 我如何决定使用哪一个 func 是一个隐式声明的标识符 当在函数内部使用时 它会扩展为包含函数名称的字符数组变量 它在 C99 中被添加到 C 中 从C
  • Android中如何设置按钮的背景图片?

    我在drawable mdpi中导入了一张图像 然后从按钮实现了该图像 但出现错误no resource found here 我该如何解决这个问题 我试过这个 main xml
  • Sencha Touch 动画选项

    在哪里可以找到 Ext Panel show 的可用动画类型列表 我搜索了文档并用谷歌搜索了 sencha touchanimation options 但找不到任何东西 你可以在这里看到所有的动画 http dev sencha com
  • 如何在 C++ 中增加“z”之外的字母组合?

    我正在处理 Excel 电子表格 并且必须仅使用一种类型的公式来处理大量数据 由于在公式中唯一必要的更改涉及字母 我想知道是否有一种方法可以制作一个程序 按照 Excel 列顺序 A B C Z AA AB AC AZ BA BB BC B
  • Asp.Net URL 的绝对路径

    为了使 Web 应用程序能够更轻松地与不同服务器上的另一个应用程序共享文件 我在母版页中使用了基本 href 标签 正如许多人发现的那样 这破坏了 Web 表单路径 我有一个工作表单适配器类 但不确定如何获取 url 的绝对路径 目前 我的
  • Apache 配置:Websockets 代理 WSS 请求到 WS 后端

    预先感谢您的任何帮助 我尝试使用 Apache 作为使用 WSS 的 Web 浏览器和后端 WS 服务器进程之间的代理 浏览器 Apache RabbitMQ Stomp 我在 Apache 中正确设置了 HTTPS 并通过 443 提供页