我正在为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模块已完全激活...
您有什么想法吗? :)谢谢!
规格:
答案 0 :(得分:0)
最后,我找到了答案!
这是Apache上的一个已知问题:https://bz.apache.org/bugzilla/show_bug.cgi?id=55598
您必须升级Apache HTTPD才能使其正常工作!