首页 > 后端开发 > Golang > 如何成功将 Go-WebSocket 与 Apache mod_proxy_wstunnel 集成?

如何成功将 Go-WebSocket 与 Apache mod_proxy_wstunnel 集成?

Patricia Arquette
发布: 2024-12-25 21:26:17
原创
928 人浏览过

How to Successfully Integrate Go-WebSocket with Apache mod_proxy_wstunnel?

在 Apache mod_proxy_wstunnel 后面集成 Go-WebSocket

在尝试通过 go-websocket 利用 Apache 反向代理的功能时,开发人员遇到了以下问题几个障碍。

阿帕奇配置

以下是使用的Apache配置:

<VirtualHost *:80>
    DocumentRoot /var/www/foobar
    ServerName foobar.com
    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/
    ProxyPass /ws/ ws://localhost:8080/ws/
    ProxyPassReverse /ws/ ws://localhost:8080/ws/
    ErrorLog logs/error_log-foobar
    CustomLog logs/access_log-foobar common
    LogLevel debug
</VirtualHost>
登录后复制

初始错误

初始实现时,发生了403禁止错误,表明来源检查存在问题。禁用源站检查后,出现 400 Bad Request 错误,表示聊天服务器未收到升级请求。

故障排除

在查阅各种来源后,已采取以下步骤解决该问题:

  • 尾随斜杠: 根据 Aralo 的建议,在 WebSocket 路径 (/ws/) 中添加了尾部斜杠。这确保了 Apache 只会处理带有有效 GET 请求的 WebSocket。
  • ProxyPass 顺序: 根据 James Henstridge 的建议,/ws/ 的 ProxyPass 被放置在 / 行之前,改变了中的顺序处理了哪些请求。
  • 来源检查删除: 内的来源检查ServeWs() 函数已被识别并删除,解决了问题。

成功集成

这些修改确保了 Apache mod_proxy_wstunnel 后面的 go-websocket 成功集成。 Apache 错误日志帮助识别并纠正最初的错误。

以上是如何成功将 Go-WebSocket 与 Apache mod_proxy_wstunnel 集成?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板