2016-06-14 103 views
0

我向此URL请求: wss:// domain/websockify?port = 6801 port参数可以动态更改。我怎样才能让ProxyPass重定向到从URL中提取的动态端口?如何使用Apache反向代理动态端口?

这是一个预定义的端口工作配置:

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

回答

1

这需要使用mod_rewrite来完成。

匹配查询字符串中的端口。 重定向到我们在条件中与[P]标志匹配的端口。 在ProxyPassRevese中使用相同的匹配项。

RewriteEngine on 
RewriteCond %{QUERY_STRING} port=(.*) 
RewriteRule /websockify ws://localhost:%1/websockify/ [P] 
ProxyPassReverse /websockify ws://localhost:%1/websockify/