apache - Apache 模块 mod_proxy_wstunnel 不工作
问题描述
我有一个运行在http://XXX.XXX.XXX.XXX:3000的网站,它运行 [Botpress][1] 为了让它通过 HTTPS 运行,我做了一个 Apache 反向代理配置: 我的文件如下所示:
SSLProxyEngine on
ProxyPass "/" "http://XXX.XXX.XXX.XXX:3000/"
ProxyPassReverse "/" "http://XXX.XXX.XXX.XXX:3000/"
ProxyPass "/socket.io/" "ws://XXX.XXX.XXX.XXX:3000/socket.io/"
ProxyPassReverse "/socket.io/" "ws://XXX.XXX.XXX.XXX:3000/socket.io/"
现在,如果我转到https://botpress.mywebsite.com,我会看到 Botstrap 管理界面正常工作,但是当我登录时,我在浏览器的控制台中看到一个错误,显示:
Firefox 无法在 wss://botpress.mywebsite.com/socket.io/?visitorId=_GUWkjNu-VH9XpE3DpO76PxD&token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9....&transport=websocket 建立与服务器的连接。web.100.....94b.js:2:6616130 在页面加载时被中断。
我的 ProxyPass 和 ProxyPassReverse for socket.io 的配置文件有问题吗?
谢谢。[1]:https ://botpress.com/
解决方案
我花了几天时间。我发现问题实际上是在 conf 文件中添加内容的顺序。
‘RewriteEngine On’
‘RewriteCond %{QUERY_STRING} transport=polling [OR]’
‘RewriteCond %{REQUEST_URI} /socket.io/socket.io.js’
‘RewriteRule /socket.io/(.*)$ http://localhost:3000/socket.io/$1 [P]’
‘ProxyPass /socket.io/ ws://localhost:3000/socket.io/‘
‘ProxyPassReverse /socket.io/ ws://localhost:8082/socket.io/‘
‘ProxyPass / http://localhost:3000/‘
‘ProxyPassReverse / http://localhost:3000’
‘ProxyPreserveHost on’
推荐阅读
- cmake - add_custom_command 生成目标文件失败
- linkedin-api - LinkedIn v2 API 资料图片
- python - 如何减少这段代码的内存使用并提高其速度?
- processing - 加工 | 我的班级没有打电话给其他班级
- django - 使用 TrigramSimilarity 进行 Django Postgres 搜索
- bash - 如何在 bash 中使用 cmd 对话创建动态多选选项
- rest - Xamarin 形成 Http Web 请求
- javascript - 编写一个函数,返回一个索引和另一个索引之间的字符串子集
- css - 如何在单击时为网格中的项目设置动画以扩展到全屏?[VueJS]
- git - 在 VS Code 中使用当前 repo 的 user.email 提交