代理+PHP:使用 PHP 脚本过滤和处理特定的代理请求和响应

代理+PHP:使用 PHP 脚本过滤和处理特定的代理请求和响应

我需要在网络 X 中的机器 A 上配置代理。然后我需要连接同一网络 X 上的客户端(智能手机),但代理配置与机器 A 上准备的代理配置相同。因此,基本上,智能手机将通过机器 A 才能连接到互联网并接收远程响应。

我尝试使用 Apache 及其 mod_proxy.so 模块。

我真正需要做的是,当客户端(智能手机)请求特定 URL(例如 Google)时,代理服务器必须过滤该请求并将其发送到一个 PHP 脚本,该脚本被编程来处理该请求并向客户端发送特定答案(而不是远程服务器响应的原始答案)。对于所有其他请求(网站和站点),一切都将正常(不会被代理服务器过滤)。

我尝试在 Apache 上使用正向代理,但我只能跟踪日志访问文件。仅此而已。我无法为特定请求创建“重定向”。

然后我想到了一个反向代理,尝试通过 ProxyPass 和 ProxyPassReverse 将特定请求重定向到本地位置。没有用。似乎反向代理仅适用于在外部或内部解决本地请求。但不能用于将外部请求解析为本地请求。

然后我尝试使用 mod_ext_filter.so,并使用“SetOutputFilter”,创建对 php.exe(Windows 实现)的调用以及一个特定的 test.php 脚本来打印 $_SERVER 数组,并且我设法从我的智能手机(客户端)查看正确的 REQUEST_URI,将文件打印到“C:\”。

但是,当脚本执行完毕后,客户端却收不到任何回复。所以这似乎也不是一个好方法。

我该怎么办?有人跟我讨论过 SQUID 和内容适配,但我不太清楚。

答案1

鱿鱼外部重定向器会完全按照您的要求执行。您可以让它重写某些请求,使其指向本地服务器上的 PHP 脚本,同时允许其他请求传递到 Internet。

外部重定向器只是一个小程序,它接收来自 上的 squid 的请求stdin,根据需要重写它们,然后将它们返回给 上的 squid stdout

相关内容