V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
binux
V2EX  ›  分享创造

只有一个文件的 HTTP(s) 代理服务器

  •  
  •   binux ·
    binux · 2014-08-20 09:18:36 +08:00 · 6276 次点击
    这是一个创建于 3508 天前的主题,其中的信息可能已经有所发展或是发生改变。

    每次 python -m SimpleHTTPServer 是不是很爽,有时候想弄个HTTP代理,要装个 squid 还要配一大堆参数。

    现在只需要一个文件(标题党了一下。。还要tornado。。),就能跑出一个代理服务器!

    https://github.com/binux/pyproxy

    不止这样!甚至不需要下载,只要一个命令(限*nix),你立即拥有!

    python -c "u='https://github.com/binux/pyproxy/releases/download/v0.1/pyproxy.zip';import urllib2,sys,tempfile;f=tempfile.NamedTemporaryFile(suffix='.zip');urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler()));f.write(urllib2.urlopen(u).read());sys.path.insert(0,f.name);f.flush();from pyproxy import main;main();"

    不不不,这还不够,这个代理还支持 API 方式调用,支持各种用户验证,支持 HTTPS!看 git 就知道了。

    这几年写过好多个不同功能代理,技能点往几个方向发展,全异步的流式代理,API 控制的代理,和地址改写的web代理。试试看能不能合在一起。

    8 条回复    2014-08-20 21:46:17 +08:00
    kukat
        1
    kukat  
       2014-08-20 09:44:24 +08:00
    signature 是跟 https://github.com/mloughran/signature 一样的吗?
    lonely520224
        2
    lonely520224  
       2014-08-20 09:48:39 +08:00
    看起来不错!
    binux
        3
    binux  
    OP
       2014-08-20 10:08:59 +08:00
    @kukat 不知道哎,有使用想给某个 url 做代理,但是不想别人知道用户米密码,那就给那个 url,path,host 授权就可以了。
    spritevan
        4
    spritevan  
       2014-08-20 10:30:24 +08:00
    写个 setup.py

    pip install git+ssh://[email protected]/binux/pyproxy.git

    不比那堆 python -c "..." 好看多了
    binux
        5
    binux  
    OP
       2014-08-20 10:51:04 +08:00
    @spritevan pip 需要安装啊,install 还污染环境。。python -c 有个 python 就能用
    spritevan
        6
    spritevan  
       2014-08-20 11:22:49 +08:00
    @binux >< 我有一个专用的 playground virtualenv
    nicai000
        7
    nicai000  
       2014-08-20 11:27:15 +08:00
    对于部署来说, 是否单独文件依赖少区别很大, 鄙视标题党.
    jackton
        8
    jackton  
       2014-08-20 21:46:17 +08:00
    想要带缓存的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3319 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 13:48 · PVG 21:48 · LAX 06:48 · JFK 09:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.