2016-06-14 101 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/