V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Daring Fireball: Markdown
CommonMark
MacDown Open Source Markdown Editor
Marked
GitHub Flavored Markdown
xiebruce
V2EX  ›  Markdown

使用 nginx 负载均衡+多个云的免费额度打造免费 markdown 图床

  •  
  •   xiebruce · 2019-04-12 13:25:42 +08:00 · 16022 次点击
    这是一个创建于 2082 天前的主题,其中的信息可能已经有所发展或是发生改变。

    由于有自己的 博客,并且是用 markdown 写文章,所以自然就要用到“图床”,刚开始只使用一个云的对象存储做图床,但由于我博客 gif 图较多且大多都是几 M 甚至达到 10M,所以一个云的免费额度的流量无论如何都是不够的,于是我想到了用多个云的免费额度,再用 nginx 统一做负载均衡,把本来请求一个云对象存储的流量,分散到多个云中,这样的好处是:

    • 1、能减少每个云所承受的流量,这样就不会超过每个云的免费流量额度。
    • 2、能统一使用一个自己的图片域名,将来迁移的时候,只需要改 nginx 的反向代理指向即可,无需修改发过的文章中的图片域名链接。

    而问题也有,如果我们按以上的方法,很显然每次上传图片要同时上传到每个云中,这怎么实现呢?

    • 1、使用我开发的 PicUploader 图床工具,在该工具里可以实现同时把一张图片上传到多个云。
    • 2、使用镜像回源方式。

    详细配置过程,请直接查看我博客:使用 nginx 负载均衡+多个云的免费额度打造免费 markdown 图床

    36 条回复    2019-04-14 13:05:21 +08:00
    version
        1
    version  
       2019-04-12 13:51:16 +08:00
    最终还是走你自己的服务器流量呢..这样容易不稳定呢..而且你不是国内的服务器.也浪费了 cdn 加速的优势了.
    如果你想做服务.还不如做代理 微信公众号图片..新浪那些图片...比提供外链来得实际一点.
    inoki
        2
    inoki  
       2019-04-12 13:56:16 +08:00 via Android
    码住,想法很棒了!
    xnode
        3
    xnode  
       2019-04-12 13:57:09 +08:00
    这样没什么意义 还是走你的机器走流量,只能省存储大小
    c00WKmdje2wZLrSI
        4
    c00WKmdje2wZLrSI  
       2019-04-12 13:57:39 +08:00
    直接用微博图床还是蛮方便的
    lhx2008
        5
    lhx2008  
       2019-04-12 14:01:24 +08:00 via Android
    我初看觉得想法很好,然而后面才发现是反代。。那直接放在 nginx 服务器上面不是更好。

    如果要利用多云的免费流量,我有另外一个思路,就是用 DNS 分区解析,然后可以再配一个监控,如果流量超了就下线。

    然而总体来说还是很复杂,其实 CDN 收费的话,最多也就几块钱吧
    MonoLogueChi
        6
    MonoLogueChi  
       2019-04-12 14:01:26 +08:00 via Android
    这样走你服务器的流量,不是比直接放在服务端上更麻烦嘛
    xiebruce
        7
    xiebruce  
    OP
       2019-04-12 14:30:13 +08:00
    @version
    是的,最终是走我服务器流量,但我服务器流量多,流量方面是完全没问题的( 1 个月 1T 一般能剩个七八百 G 以上),我这样做主要是减少服务器存储,因为我服务器存储空间不多,新浪图片那些总觉得没有账号,怕什么时候丢了图片😂。
    xiebruce
        8
    xiebruce  
    OP
       2019-04-12 14:31:52 +08:00
    @xnode 其实我主要是为了节省服务器存储空间,因为我服务器存储空间很小,但流量多,所以走我机器流量没什么。
    dapang1221
        9
    dapang1221  
       2019-04-12 14:34:24 +08:00
    昨天在 mac 上把 PicUploader 装上了,很好用哟~
    ![IMG_0028.JPG](static.xuyanzhe.cn/2019/04/12/9198025113de4efd10bba3bcd33a77b8.JPG)
    xiebruce
        10
    xiebruce  
    OP
       2019-04-12 14:34:56 +08:00
    @c00WKmdje2wZLrSI 是倒是,主要是我觉得微博图床没有账号,总觉得我的图片不知传哪了,心里不踏实,怕有一天用不了了😂,而自己用对象存储,文件是可以全部找到的,对了,我的图床工具 [PicUploader]( https://www.xiebruce.top/17.html) 也支持新浪微博图床的,有兴趣可以试试。
    xiebruce
        11
    xiebruce  
    OP
       2019-04-12 14:42:03 +08:00
    @lhx2008 其实我这种做法主要是节省服务器存储空间,对于流量与速度,确实都跟直接放服务器上没区别,至于 DNS 分区解析,这个我没研究过,不太懂哈哈。cdn 多少钱没研究过,主要是刚开始用的有免费的,后来觉得额度不够,就研究了这种方法。
    xiebruce
        12
    xiebruce  
    OP
       2019-04-12 14:46:03 +08:00
    @dapang1221 哈哈,谢谢!
    xiebruce
        13
    xiebruce  
    OP
       2019-04-12 14:46:49 +08:00
    @MonoLogueChi 我忘了说一点,我服务器空间小,这样主要是可以节省服务器空间。
    3CH0
        14
    3CH0  
       2019-04-12 14:53:48 +08:00
    301 跳转 不经过服务器岂不是更好?
    opengps
        15
    opengps  
       2019-04-12 14:57:21 +08:00
    同考虑过这个问题,我觉得图片可以单独建个站点管理,跳转到有效可引用的路径上去
    xiebruce
        16
    xiebruce  
    OP
       2019-04-12 15:09:56 +08:00
    @3CH0 文章内部的图片不能做 301 跳转吧?至少根据我所知道的知识是无法这样做的,我知道的是直接在浏览器地址栏访问图片的话才可以用 301 跳转,当然我才疏学浅,如果确实有方法能让文章内部的图片做 301 跳转,希望能指教一下,谢谢啦。
    xiebruce
        17
    xiebruce  
    OP
       2019-04-12 15:12:59 +08:00
    @opengps 是的,我现在就是配置了一个单独站点,当然并非自己做图片服务器,只是走个反代。
    xiebruce
        18
    xiebruce  
    OP
       2019-04-12 15:14:11 +08:00
    @inoki 谢谢哈哈
    xiebruce
        19
    xiebruce  
    OP
       2019-04-12 15:14:51 +08:00
    @inoki 不过我这个不是想法,是已经实际使用了好几个月了,感觉还不错!
    ThirdFlame
        20
    ThirdFlame  
       2019-04-12 15:21:06 +08:00
    可以做 301 跳转的。 浏览器自动处理
    gamexg
        21
    gamexg  
       2019-04-12 15:49:43 +08:00
    @xiebruce #16 可以 301 跳转的,另外如果对方反外链,可以通过 iframe 或 meta referrer 规避。
    xiebruce
        22
    xiebruce  
    OP
       2019-04-12 16:46:06 +08:00
    @ThirdFlame @gamexg 感谢两位,我试了一下,确实可以,这个我之前一直以为在页面内部是不可以做的呢,那这样的话,是不是流量就没有走我自己的服务器了?网页内部图片 301 过多会不会造成一些问题?
    xiebruce
        23
    xiebruce  
    OP
       2019-04-12 19:09:16 +08:00
    @ThirdFlame @gamexg 我搞清楚了,301,302 虽然可以跳转,但由于很多云自带域名并不支持 https,会导致我的 https 小锁不显示,而是显示成“不安全”,这么看来,还是得使用 proxy_pass 的方式,具体请看: https://www.xiebruce.top/644.html#return-302-2
    MonoLogueChi
        24
    MonoLogueChi  
       2019-04-12 20:37:35 +08:00 via Android
    @xiebruce 哪里有这种流量大空间小的机器,我也想搞一台
    foru17
        25
    foru17  
       2019-04-12 20:47:55 +08:00
    这种情况有木桶效应,还不如 DNS 层 CNAMEX 负载靠谱
    xiebruce
        26
    xiebruce  
    OP
       2019-04-12 23:27:20 +08:00
    @MonoLogueChi Virmach 吧,现在最便宜的好像是 25 刀一年,我买的时候 17.5 刀
    xiebruce
        27
    xiebruce  
    OP
       2019-04-12 23:29:12 +08:00
    @foru17 你说的木桶效应是?
    msg7086
        28
    msg7086  
       2019-04-13 01:16:53 +08:00
    在国内,流量远远比硬盘贵。
    如果放在国外,那总体收益远远小于正常搭建的方式。
    xiebruce
        29
    xiebruce  
    OP
       2019-04-13 05:32:09 +08:00
    @msg7086 我只是个人博客使用(或者是没有博客单纯 markdown 软件写 md 文档也可使用),并没有什么收益之说呀。我确实用的是国外的服务器。
    msg7086
        30
    msg7086  
       2019-04-13 07:09:25 +08:00   ❤️ 1
    @xiebruce 我的意思是,这么多功夫花下去并没有每月多花一点小钱租个硬盘空间大点的机器来得划算。

    图床一开始的目的就不是存储,而是提供分发流量。现在你数据全部走代理,丧失了图床 99%的作用。
    你服务器放在国外的话,弄个 Google Drive 或者 OneDrive 的账号,直接挂载在服务器上存数据就是了,没有必要走这样的弯路。
    BCy66drFCvk1Ou87
        31
    BCy66drFCvk1Ou87  
       2019-04-13 08:30:31 +08:00 via Android
    有点南辕北辙……不过年轻就是各种捣鼓才有意思
    c00WKmdje2wZLrSI
        32
    c00WKmdje2wZLrSI  
       2019-04-13 09:21:23 +08:00
    @xiebruce 你这是 virmach ?速度还行啊,我一开始还以为是国内的服务器
    xiebruce
        33
    xiebruce  
    OP
       2019-04-13 18:57:26 +08:00
    @xiebruce 是的,在西雅图,做了缓存嘛
    xiebruce
        34
    xiebruce  
    OP
       2019-04-13 19:16:53 +08:00
    @msg7086
    1、就我自己来说,我认为的划算就是少花钱,所以我觉得我这个很划算,而你说的要花钱就显得不划算。
    2、我的目的就是有地方存图,方便获取外链,我现在博客图片用着挺好,所以我有点理解不了“丧失了图床 99%的作用”这句话,如果说流量问题,我不缺流量,如果说速度问题,我图片加载也不见得慢到忍受不了(事实上加载还是挺快的),所以我是感受不到“丧失了图床 99%的作用”。
    3、google drive 和 onedrive 直接挂载我还真的是第一次听说,以前都不知道,去查了一下确实是可以挂载到 linux 机器上,这样倒也是一种方法,但其实这种挂载的方法也是有缺点的,就是只能用于博客,如果用于其他 md 文档什么的要获取 md 外链应该还是比较麻烦吧,不过还是感谢你的建议!
    msg7086
        35
    msg7086  
       2019-04-14 05:33:13 +08:00
    @xiebruce 我提 GD 和 OD 是因为既然你已经打算流量走本地了,与其用图床反代,不如直接把文件存在网盘上,让 Nginx 直接读就行了。
    xiebruce
        36
    xiebruce  
    OP
       2019-04-14 13:05:21 +08:00
    @msg7086 嗯,你说的这个直接挂载我之前是不知道可以这么做的,就博客存图来说,其实这样做倒是挺方便,就是其他地方存图没这么方便了,比如我用 md 软件写文档,但貌似也可以给我的图床工具写个功能,让我能用“右击图片→点击上传→得到 md 外链→去 md 软件上粘贴” 这样的方式来方便的得到 md 外链,以后有时间我再试试,再次感谢你的建议,让我知道了这种方法,我之前真不知道能这么挂载网盘😄。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5502 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 08:54 · PVG 16:54 · LAX 00:54 · JFK 03:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.