apache - 代理配置和 Websocket 的问题
问题描述
使用 WHM/cPanel 运行 CentOS。运行我们最近向客户开放的第三方 BI 工具。它在端口 8080 上运行,并且与客户和端口有很多问题。尝试设置代理以允许用户访问端口 80。除 WebSocket 外,一切正常。适用于端口 8080 但不适用于 80。
错误:
WebSocket 连接到“ws://test.titandash.com/vs-events/831/dot3dqaq/websocket”失败:WebSocket 握手期间出错:意外响应代码:400
WS 网址:
- 不工作:ws://test.titandash.com/vs-events/978/sjnprvmw/websocket
- 工作:ws://titandash.com:8080/vs-events/526/b2ofnbsz/websocket
当前 Conf.d 包括
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
<VirtualHost 192.249.120.188:80>
ServerName test.titandash.com
ServerAdmin ccole@shiptsg.com
ProxyPreserveHost Off
ProxyRequests Off
ProxyPass / http://titandash.com:8080/ upgrade=WebSocket
ProxyPass "/vs-events" "http://titandash.com:8080/vs-events" upgrade=WebSocket
ProxyPassReverse / http://titandash.com:8080/
</VirtualHost>
解决方案
cd /etc/apache2/sites-enabled
如果您仍在使用 000-default.conf,请将您的虚拟主机配置放在那里,而不是 config.d
<VirtualHost *:80>
ServerName test.titandash.com
ServerAdmin ccole@shiptsg.com
ProxyPreserveHost On
ProxyRequests Off
ProxyPass "/vs-events/" "ws://[enterbackendserver]:8080/vs-events"
</VirtualHost>
然后在命令行中运行这些:
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_wstunnel
sudo systemctl restart apache2
推荐阅读
- android - 无法在颤振中运行 stripe_sdk 示例
- ios - 在 SwiftUI 中编辑大量文本
- ruby-on-rails - Validator 辅助方法中的 Rspec 模拟验证条件
- python - 如何在python中为n * 3创建一个数组
- python - 尝试用地图中的值替换数据帧值时无法比较类型“ndarray(dtype=int64)”和“str”
- c# - .net Core 服务启动时间过长
- domain-driven-design - 未将域耦合到六角架构 asp.netcore webapi 中的基础架构层
- hibernate - Oracle DB 的 persistence.xml 中的问题
- c++ - 在 C++ 的类末尾写 private 有什么特殊含义吗?
- ios - 在 iPhone 中安装应用程序时出现白色网格图标