技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 其他 --> 使用 Perl 实现 HTTP 代理

使用 Perl 实现 HTTP 代理

浏览:2910次  出处信息

一台开发的服务器,没有连接外网的权限,但内一网段内有一台机器可以连接外网,不想做路由和搞个 SQUID ,所以直接使用 Perl 来做了一个小的 Web 代理,最简单的实现这个功能。

这样在内部的那台开发服务器,也能使用 cpanm 来安装模块了。

我在想下面这个代理服务器,是不是世界上代码最少的代理服务器。有空可以加强一下,支持存取在本地的文件,支持 cookie,

use strict;
use warnings;
use Plack::Builder;
use Plack::Response;
use Plack::Request;
use LWP::UserAgent;
use Data::Dumper;
 
 
my $ua = LWP::UserAgent->new;
 
my $app = builder {
    sub {
        my $url = shift;
        my $req    = Plack::Request->new($url);
        my $ua_res = $ua->get($req->request_uri);
        my $res    = Plack::Response->new($ua_res->code);
        $res->headers($ua_res->headers);
        $res->body($ua_res->content);
        return $res->finalize;
    };
};

使用也非常简单,启动代理

$ plackup -p 80 proxy.pl

cpanm 是使用的 wget 下载,所以我们修改一下 wget 的代理地址
编辑.wgetrc 这个文件加入如下

http_proxy = http://x.x.x.x:80
ftp_proxy = http://x.x.x.x:80
use_proxy = on
wait = 5

建议继续学习:

  1. 让安卓手机通过代理翻墙的方法    (阅读:7250)
  2. 关于 SOCKS 代理的远端 DNS 解析    (阅读:6503)
  3. 代理的加密部分    (阅读:7127)
  4. HTTP 正向代理与反向代理    (阅读:3954)
  5. 关于不得不在python中使用代理访问网络的方法    (阅读:3821)
  6. nginx.conf控制指定的代理ip和ip访问的设置手记    (阅读:3586)
  7. 关于http代理    (阅读:3389)
  8. socks5代理服务器的配置    (阅读:2939)
  9. 代理的本地部分    (阅读:2882)
  10. 代理的远程部分    (阅读:2637)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
  • 作者:扶凯    来源: 扶凯
  • 标签: 代理
  • 发布时间:2011-06-10 14:06:39
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1