V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
XGHeaven
V2EX  ›  问与答

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

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

    简单来讲就是希望 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 下可以自己中间人自己
    (我要告诉你老板,你又在划水了
    unhappy224
        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   ·   实用小工具   ·   4824 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 03:57 · PVG 11:57 · LAX 19:57 · JFK 22:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.