如何使用Apache反向代理动态端口?

时间:2016-06-14 15:11:57

标签: apache websocket port proxypass

我向此网址发出请求: 的 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

1 个答案:

答案 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/