Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 可编程透明转发代理_Python_Ruby_Perl_Apache_Proxy - Fatal编程技术网

Python 可编程透明转发代理

Python 可编程透明转发代理,python,ruby,perl,apache,proxy,Python,Ruby,Perl,Apache,Proxy,我正在寻找一种编写透明转发代理脚本的方法,例如用户在代理设置中将浏览器指向的代理 我发现在前向代理中,在可编写脚本性和健壮性之间有一个明显的折衷。例如,它们是在中开发的无数代理,允许您检查每个请求响应并随意记录、修改、筛选。。。然而,它们要么无法代理所需的一切,要么在使用20分钟后崩溃 另一方面,我怀疑Squid和Apache相当健壮和稳定,但就我的一生而言,我无法确定如何通过脚本开发动态行为。最后,我想设置配额,并对该配额进行动态筛选。我的一部分感觉像是混合和修改perl??可以允许有趣的动态

我正在寻找一种编写透明转发代理脚本的方法,例如用户在代理设置中将浏览器指向的代理

我发现在前向代理中,在可编写脚本性和健壮性之间有一个明显的折衷。例如,它们是在中开发的无数代理,允许您检查每个请求响应并随意记录、修改、筛选。。。然而,它们要么无法代理所需的一切,要么在使用20分钟后崩溃

另一方面,我怀疑Squid和Apache相当健壮和稳定,但就我的一生而言,我无法确定如何通过脚本开发动态行为。最后,我想设置配额,并对该配额进行动态筛选。我的一部分感觉像是混合和修改perl??可以允许有趣的动态代理,但很难知道从哪里开始,也很难知道是否可能


请告知。

如果您正在寻找Perl解决方案,请查看


但不确定是否有任何mod_perl解决方案。确实会让人想起谷歌,也会让人想起谷歌。但是请注意,这两个都有点旧,所以YMMV,但您可能会发现它们是一个有用的补充。

我一直在用python编写HTTP库,专门将代理服务器作为用例编写。目前它还不是很成熟(当然需要更多的测试和单元测试),但它已经足够完整,我觉得它很有用。我不知道它是否能满足你的任何需求

该库称为httpmessage,谷歌代码站点就是这样找到的。有一个在服务器上编写代理服务器的示例


我很高兴收到反馈和/或bug修复。

在Apache中,我从未以这种方式使用过
mod_proxy
,但我使用过
mod_rewrite
。mod_rewrite还允许您代理请求。该指令允许您将决策传递给外部脚本:

MapType:prg,MapSource:Unix文件系统到有效常规文件的路径

这里的源代码是一个程序,而不是一个映射文件。要创建它,您可以使用自己选择的语言,但结果必须是一个可执行程序(目标代码或第一行是带有神奇的cookie技巧“#!/path/To/explorer”的脚本)

该程序在Apache服务器启动时启动一次,然后通过其stdin和stdout文件句柄与重写引擎通信。对于每个map函数查找,它将在stdin上接收以换行符结尾的字符串形式进行查找的键。然后,它必须在stdout上以换行符结尾的字符串形式返回查找到的值,如果失败,则返回四个字符的字符串“NULL”(即给定键没有对应的值)

使用Squid,您可以通过指令获得类似的功能:

此标记定义使用帮助程序的外部acl类应如何查找状态


祝你好运

我会使用,它可以执行其他程序来动态更改请求。

我使用squid和external_acl_类型,工作起来很有魅力。谢谢。我几乎可以肯定,如果我今天还需要这样做,我会在node.js中编写它