Proxy
將 URL 代理到動態設置的埠
假設我有 URL=www.mysite.com/20000/
我想獲得一個代理,然後可以將流量定向到 www.mysite.com:20000。問題是我不知道 URL 的/埠會提前是什麼。所以我不能在代理配置中將 url /20000/ 靜態匹配到埠 20000。有沒有我可以使用的程序,我可以將 regx 從 URL 保存到變數並將其設置為我想要代理的埠?或者這是不可能的。對於上下文,這是查看隨機埠上的 SSH 連接的前端。謝謝
警告:
下面的解決方案可能是一個主要的安全問題,因為您允許最終使用者指定要在後端伺服器上訪問的埠,從而打開了允許訪問外部不可見埠的大門。
必須有一些機制來防止不需要的埠 - 這也可以以類似的方式完成
mod_rewrite
,讓您想要的任何東西通過並阻止您不想要的東西。這可以使用 Apache httpd
mod_rewrite
和代理來完成,指令是:RewriteEngine on RewriteRule ^/?([0-9]*)/(.*) http://www.example.com:$1/$2 [L,P]
您將需要啟用
mod_rewrite
和mod_proxy
。有關 的完整文件mod_rewrite
,您可以查閱:也就是說,使用ProxyPassMatch實際設置它可能會更好……
ProxyPassMatch "^/?([0-9]*)/(.*)" "http://backend.example.com:$1/$2"