Apache 作为动态 IP 的代理转发器

Apache 作为动态 IP 的代理转发器

我在网上搜索过,但不知道该怎么做。所以我要找的是一个代理,它可以根据我在 URL 中输入的 IP 地址转发 HTTP 查询(GET)。

例如:

我请求: http://host/query/IP_A 它应该做的是:ME => GET HTTP myhost/query/IP_A => GET IP_A ===> 对 IP_A 进行 GET HTTP 查询并返回给发送者!

我一直在研究 proxypass、reverseproxy、proxymatch 和 mod_rewrite……但我不明白为什么它们根本不起作用!而且我没有日志……当调试时间到来时,这难道不酷吗!:-(

这是我的实际配置:

<VirtualHost *:80>
 ServerName myServer
 DocumentRoot /home/me/www/htdocs
 #       RewriteCond ^.*/query/(.*)
 #       RewriteRule (.*) http://$1 [P]
 ProxyPassMatch ^.*/query/(.*) http://$1
 ErrorLog logs/me-error_log
 CustomLog logs/me-access_log debug
</VirtualHost>

这是一个静态工作示例:

ProxyPass / http://IP_A
ProxyPassReverse / http://IP_A

因此,当我访问 Web 服务器时,它会直接转到 IP 并返回 http 响应。

谢谢您的帮助!

答案1

您的用例有点不清楚。这听起来很像普通的 Web 代理(它接受来自浏览器的请求,然后代表浏览器从远程站点获取内容)。

但要做你想做的事:

<VirtualHost *:80>
    RewriteRule ^/query/(.*) http://$1 [P]
<VirtualHost *:80>

这将获取有关的任何内容/query/并将其附加到http://,然后对结果发出代理请求。正如@EEAA所说,这是一个安全噩梦(有人可以使用你的服务器攻击远程系统),但它会按照你想要的方式运行。

您可能需要了解如何使用 Apache 作为转发代理(如mod_proxy文档,或这里例如),看看是否能满足您的需求。

相关内容