为什么Apache HTTPD在重写引擎中串联websocket URL?

时间:2018-09-03 08:10:14

标签: apache mod-rewrite websocket

我正在为Apache重写引擎机制而苦苦挣扎,特别是对于websocket重写。

我在httpd.conf中具有此配置:

    LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
    [...]
    <IfModule mod_rewrite.c>
            LogLevel rewrite:trace8
            RewriteEngine On
            RewriteCond %{HTTP:UPGRADE} ^(.*)WebSocket(.*)$ [NC]
            RewriteCond %{HTTP:CONNECTION} ^(.*)Upgrade(.*)$ [NC]
            RewriteRule .* ws://host_to_redirect%{REQUEST_URI} [P]
    </IfModule>

但是此配置似乎不起作用,我在 host_to_redirect 中看不到日志URL调用。但是,我在Apache中看到此重写日志:

  

[2018年8月31日星期五10:21:35.170174] [rewrite:trace1] [pid 27194] mod_rewrite.c(468):[client 160.35.1.22:54354] 160.35.1.22--[host_apache_httpd / sid#7f150fe11a70] [rid#7f15105ea430 / initial]通过代理请求代理进行授权:https://host_apache_httpd/ws://host_to_redirect/websocket/ack/297/051schka/websocket [确定]

Apache正在杂乱地将Apache主机和目标主机连接在一起。像Apache一样不了解websocket协议。但是wstunnel模块已完全激活...

您有什么想法吗? :)谢谢!

规格

  • Centos6
  • Apache 2.4.6

1 个答案:

答案 0 :(得分:0)

最后,我找到了答案!

这是Apache上的一个已知问题:https://bz.apache.org/bugzilla/show_bug.cgi?id=55598

您必须升级Apache HTTPD才能使其正常工作!