gpt4 book ai didi

Apache proxyPassReverse 和 Websockets

转载 作者:行者123 更新时间:2023-12-03 13:28:26 25 4
gpt4 key购买 nike

我一直在从事一个使用 websockets 的 Perl Mojolicious 项目。我想在运行 apache 的共享服务器上启动它,并使用 proxyPass 和 proxyPassReverse 使我的 Mojolicious 代码与 Hypnotoad 一起运行的 url 更漂亮。

我将其设置如下。

Apache 网址:

mydomain.com

催眠曲网址:
mydomain.com:8080

使用以下 apache 条目,我可以将 Hypnotoad 服务器反向代理到
project.mydomain.com

apache.conf 条目
<VirtualHost *:80>
ServerName project.mydomain.com
DocumentRoot /var/www/project
<Directory /var/www/project/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://mydomain.com:8080/ keepalive=On
ProxyPassReverse / http://mydomain.com:8080/
RequestHeader set X-Forwarded-HTTPS "0"
</VirtualHost>

但是,当我使用时,我的 websocket 请求会出现 404 错误:
ws://project.mydomain.com/get-data

当我使用时出现 302 错误:
ws://mydomain.com:8080/get-data

我想这不是问题,因为 websocket 没有检查身份验证,但他们使用 Mojolicious 路由来检查您是否可以通过 websocket 发布。

据我所知,Apache 不支持反向代理 websockets。在 apache/httpd 配置文件中。

有没有人使用 Apache 找到一个对生产环境稳定的可用解决方案?

最佳答案

3月a patch was committed to the Apache trunk由 Jim Jagielski 编写,它允许正确代理 websocket。该补丁添加了一个名为 proxy_wstunnel 的新子模块,其中 allows mod_proxy to work with the "ws" and "wss" protocols .

该模块尚未出现在任何官方 Apache 版本中(截至 2013 年 6 月 8 日),因此您需要自己编译它。 Voyageur's blog描述了 Apache 2.2 的过程,但对于 Apache 2.4 应该更容易

关于Apache proxyPassReverse 和 Websockets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14453123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com