Proxy

將 URL 代理到動態設置的埠

  • September 20, 2015

假設我有 URL=www.mysite.com/20000/

我想獲得一個代理,然後可以將流量定向到 www.mysite.com:20000。問題是我不知道 URL 的/埠會提前是什麼。所以我不能在代理配置中將 url /20000/ 靜態匹配到埠 20000。有沒有我可以使用的程序,我可以將 regx 從 URL 保存到變數並將其設置為我想要代理的埠?或者這是不可能的。對於上下文,這是查看隨機埠上的 SSH 連接的前端。謝謝

警告:

下面的解決方案可能是一個主要的安全問題,因為您允許最終使用者指定要在後端伺服器上訪問的埠,從而打開了允許訪問外部不可見埠的大門。

必須有一些機制來防止不需要的埠 - 這也可以以類似的方式完成mod_rewrite,讓您想要的任何東西通過並阻止您不想要的東西。


這可以使用 Apache httpdmod_rewrite和代理來完成,指令是:

RewriteEngine on
RewriteRule ^/?([0-9]*)/(.*)    http://www.example.com:$1/$2 [L,P]

您將需要啟用mod_rewritemod_proxy。有關 的完整文件mod_rewrite,您可以查閱:

也就是說,使用ProxyPassMatch實際設置它可能會更好……

ProxyPassMatch "^/?([0-9]*)/(.*)" "http://backend.example.com:$1/$2"

引用自:https://serverfault.com/questions/723602