如何在局域网架设 npm 等包管理仓库的透明缓存? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
XGHeaven
V2EX    问与答

如何在局域网架设 npm 等包管理仓库的透明缓存?

  •  
  •   XGHeaven 2020-05-08 09:48:01 +08:00 via Android 1183 次点击
    这是一个创建于 2065 天前的主题,其中的信息可能已经有所发展或是发生改变。

    简单来讲就是希望 url 不变,但是在内网请求的时候自动转发到内网的缓存服务器上。关键是透明代理缓存,也就是不改变 npm 仓库的地址。

    想过方案,第一个就是 dns 直接解析到缓存服务器上,但缓存服务器就不能用域名代理访问 npm,只能自己解析之后再请求。而且 dns 解析不能解析到某个特定端口,折腾起来也很费劲。

    第二个就是类似于科学上网的办法,但是更折腾,而且我的路由器似乎不支持开两个科学上网。

    大家有啥更好的方法么?

    10 条回复    2020-05-08 22:19:58 +08:00
    tt0411
        1
    tt0411  
       2020-05-08 09:56:55 +08:00
    不改变 url 很难, 因为现在的包管理仓库基本都是 https 了, 如果想通过缓存服务器直接返回内容, 就必须让客户端信任自定义 CA 证书, 这个成本通常比改变 url 要高很多 (安全风险也增加很多)
    rockyou12
        2
    rockyou12  
       2020-05-08 10:04:12 +08:00
    改 npm 地址比较好,因为像 nexus 这些仓库本来就带代理缓存功能,也可以通过 group 功能把公共仓库和私有库合并在一个虚拟的 group repo 下

    而且上面也说了,你不改 url 证书这块很麻烦,不好处理
    shansing
        3
    shansing  
       2020-05-08 10:37:36 +08:00
    @tt0411
    @rockyou12
    sniproxy 了解一下,不需要部署私钥 /改变证书。
    shansing
        4
    shansing  
       2020-05-08 11:02:17 +08:00
    @shansing 呃,但是只能代理不能缓存,不符合题主要求。
    otakustay
        5
    otakustay  
       2020-05-08 11:31:22 +08:00
    缓存服务器单独给它个 DNS 配置就好了呗,114 都行
    azh7138m
        6
    azh7138m  
       2020-05-08 11:42:10 +08:00 via Android
    http 下可以自己劫持自己
    https 下可以自己中间人自己
    (我要告诉你老板,你又在划水了
    unhapp224
        7
    unhappy224  
       2020-05-08 14:25:19 +08:00
    没必要吧,不想全局配置 url 的话可以在项目里面加一个.npmrc
    XGHeaven
        8
    XGHeaven  
    OP
       2020-05-08 14:29:08 +08:00 via Android
    @unhappy224 主要有些个人的项目不止在内网(家里)开发,有时在公司抽空也会写两下。所以不想改地址。
    mgrddsj
        9
    mgrddsj  
       2020-05-08 14:57:28 +08:00 via Android
    参考 steamcache, lancache, qcacher.
    XGHeaven
        10
    XGHeaven  
    OP
       2020-05-08 22:19:58 +08:00 via Android
    @mgrddsj 好的我研究下
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     779 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 20:12 PVG 04:12 LAX 12:12 JFK 15:12
    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