有没有转发 HTTP 请求的轮子? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
userlol
V2EX    程序员

有没有转发 HTTP 请求的轮子?

  •  1
    &nsp;
  •   userlol 2017-09-04 13:06:27 +08:00 4893 次点击
    这是一个创建于 2990 天前的主题,其中的信息可能已经有所发展或是发生改变。

    唯一要求:只要是监听 80 端口,接收 HTTP 请求,然后转发给相应目的主机。

    只要转发 HTTP 请求,HTTPS 支持都无所谓,也不需要向 FQ 工具那样 TCP 转发,希望是应用层转发就好,这样用起来也方便。
    举例:比如在 10.0.1.123 的 hosts 中指定了 10.0.1.110 www.test.com, 随后收到来自 10.0.1.123 的请求,该 proxy 将 GET /index.htm HTTP/1.1 ...请求转发至真正主机 123.113.110.134 ,并将回复 HTTP 302 Found 发回 10.0.1.123
    之自己写了个,单线程,效率低,有没有类似的轮子啊?谢谢各位

    第 1 条附言    2017-09-04 13:47:19 +08:00
    补充下,首先,需要跑在 CentOS CUI 下,其次 nginx 反代的确很厉害;还有,闭源的话希望提供改 http request/response 功能,开源的话希望最好是 http(s)代理,修改功能我就可以自己写了,最后,谢谢大家!
    31 条回复    2017-09-05 16:56:48 +08:00
    msg7086
        1
    msg7086  
       2017-09-04 13:08:43 +08:00
    为什么要回复 302 ?
    pathletboy
        2
    pathletboy  
       2017-09-04 13:10:10 +08:00
    nginx?
    userlol
        3
    userlol  
    OP
       2017-09-04 13:10:31 +08:00
    @msg7086 只是个例子,就是转发真正服务器原先的内容就可以,我改一下
    msg7086
        4
    msg7086  
       2017-09-04 13:11:22 +08:00
    @userlol 只是转发的话 nginx 躺着就能做。
    novaeye
        5
    novaeye  
       2017-09-04 13:11:28 +08:00
    各种反向代理工具都可以吧. 比如 haproxy, 比如 nginx, 又比如 caddy : https://caddyserver.com
    msg7086
        6
    msg7086  
       2017-09-04 13:13:01 +08:00
    如果你用 Windows 的话,IIS 也应该可以做反代。
    tinytin
        7
    tinytin  
       2017-09-04 13:13:23 +08:00 via iPhone
    nginx 最方便了
    userlol
        8
    userlol  
    OP
       2017-09-04 13:14:43 +08:00
    @msg7086
    @novaeye
    @pathletboy
    先谢谢各位,之前我自己写的原因就是要修改 HTTP 请求里的内容(不是干坏事,自用),nginx 的话,这方面感觉太弱了。有开源轮子可以用吗?
    userlol
        9
    userlol  
    OP
       2017-09-04 13:17:00 +08:00
    为什么 4 分钟就不能编辑了呢,也不能 append
    插一句,希望轮子能修改 http response,抱歉忘了提这个需求
    jobtesting
        10
    jobtesting  
       2017-09-04 13:18:40 +08:00
    fiddler 不行?
    t1518968889
        11
    t1518968889  
       2017-09-04 13:19:10 +08:00 via Android
    镜像?
    zlfzy
        12
    zlfzy  
       2017-09-04 13:25:18 +08:00 via iPhone
    @userlol 日 PV 千万 nginx 都毫无压力,你说个人用感觉很弱
    msg7086
        13
    msg7086  
       2017-09-04 13:26:54 +08:00
    @userlol 有多弱?你要改什么? nginx 里带着一套 lua 引擎你试过么……
    上面说的 fiddler 也是一个,能写脚本改请求的。

    只是改 response 的话 nginx 里有替换字符串的功能。

    无回复的时候可编辑,30 分钟还是多少分钟后可 append。
    tradzero
        14
    tradzero  
       2017-09-04 13:27:55 +08:00 via Android
    nginx 反代太弱???
    hellove1985
        15
    hellove1985  
       2017-09-04 13:35:29 +08:00
    mitmproxy ?
    fcka
        16
    fcka  
       2017-09-04 13:38:06 +08:00 via Android
    openresty
    Immortal
        17
    Immortal  
       2017-09-04 13:43:20 +08:00
    openresty+1
    msg7086
        18
    msg7086  
       2017-09-04 14:40:01 +08:00
    你还是 nginx 吧,自己写模块也行,lua 脚本处理 response 也行。

    https 代理原生支持,当然你要获取 response 必须要先解密再改数据再重新加密。
    whileFalse
        19
    whileFalse  
       2017-09-04 15:23:03 +08:00
    拿 go 裸写,50 行要不了
    nullcc
        20
    nullcc  
       2017-09-04 16:39:58 +08:00
    openresty 可以有
    fuxkcsdn
        21
    fuxkcsdn  
       2017-09-04 19:47:53 +08:00 via iPhone
    openresty+1
    zzzvvvxxxd
        22
    zzzvvvxxxd  
       2017-09-04 20:46:27 +08:00
    openresty
    binux
        23
    binux  
       2017-09-04 20:48:59 +08:00
    nginx 弱?我们公司在 nginx 上做的用户认证系统。。
    yidinghe
        24
    yidinghe  
       2017-09-04 21:08:43 +08:00 via Android
    https://github.com/openresty/lua-nginx-module/blob/master/README.markdown

    楼主看看这个能不能满足要求,用 lua 编写处理逻辑。
    zhongshu
        25
    zhongshu  
       2017-09-04 21:46:03 +08:00
    java,我用 jetty 写过一个根据 url 代理到不同地址,或本地路径的工具,jetty 干这个还挺好用的。
    mengskysama
        26
    mengskysama  
       2017-09-04 21:56:10 +08:00
    openresty 2 行搞定了吧....
    local res = ngx.location.capture(ngx.var.scheme .. "://" .. ngx.var.host .. ngx.var.uri)
    res.say("body:" .. res.body)
    pagxir
        27
    pagxir  
       2017-09-04 23:15:09 +08:00
    找个开源的 CDN 项目改改,基本满足你需求的了。比如 openCDN
    togodo
        28
    togodo  
       2017-09-05 07:09:03 +08:00
    这不就是代理服务器吗
    displayabc
        29
    displayabc  
       2017-09-05 09:48:35 +08:00
    好像 nginx 新版本增加了 http 镜像功能
    hdczsf
        30
    hdczsf  
       2017-09-05 10:31:09 +08:00
    不用 nginx 的话,那可以尝试一下 kangle
    https://www.kanglesoft.com/article-10-1.html
    micean
        31
    micean  
       2017-09-05 16:56:48 +08:00
    vertx
    代理只有几行代码
    http 或 s 都可以
    性能的话自己测试
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1357 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 17:05 PVG 01:05 LAX 09:05 JFK 12:05
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86