将 URL 代理到动态设置的端口

将 URL 代理到动态设置的端口

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

我想获得一个代理,然后可以将流量引导到 www.mysite.com:20000。问题是我不知道 URL/端口会是什么。所以我无法在代理配置中将 URL /20000/ 静态匹配到端口 20000。是否有一个程序可以用来将 URL 中的正则表达式保存到变量中,并将其设置为我想要代理的端口?或者这是不可能的。对于上下文,这是一个用于查看随机端口上传入的 SSH 连接的前端。谢谢

答案1

警告:

下面的解决方案可能是一个重大的安全问题,因为您允许最终用户指定访问后端服务器的端口,从而打开了允许访问外部不可见端口的大门。

必须采取某种机制来阻止不必要的端口 - 这也可以以类似的方式完成,mod_rewrite让任何你想要的东西通过,并阻止你不想要的东西。


这可以使用 Apache httpd 和代理来完成mod_rewrite,指令如下:

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

您需要启用mod_rewritemod_proxy。有关 的完整文档mod_rewrite,您可以查阅:

话虽如此,实际上最好将其设置为代理密码匹配...

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

相关内容