我向此网址发出请求: 的 WSS://域/ websockify端口= 6801 port参数可以动态更改。如何让ProxyPass重定向到从URL中提取的动态端口?
这是适用于预定义端口的配置:
ProxyPass /websockify ws://localhost:6801/websockify/
ProxyPassReverse /websockify ws://localhost:6801/websockify/
如果我使用ProxyPassMatch,apache告诉我有一个错误:
ProxyPassMatch ^/.*\?port=(.*)$ ws://localhost:$1/websockify/
#ProxyPass Unable to parse URL: ws://localhost:$1/websockify/
我使用apache 2.4.10
答案 0 :(得分:2)
这需要使用mod_rewrite。
匹配查询字符串中的端口。 重定向到我们在条件中与[P]标志匹配的端口。 在ProxyPassRevese中使用相同的匹配。
RewriteEngine on
RewriteCond %{QUERY_STRING} port=(.*)
RewriteRule /websockify ws://localhost:%1/websockify/ [P]
ProxyPassReverse /websockify ws://localhost:%1/websockify/