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

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

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

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

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

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