51300520
V2EX  ›  问与答

web 站点静态文件应该用什么方式存储?

  •  
  •   51300520 · Jun 13, 2019 via Android · 3871 views
    This topic created in 2708 days ago, the information mentioned may be changed or developed.
    这些静态文件主要是图片,假如有 5 个不同的站,分布在 5 台服务器上,都用 nginx 当网关,难道把各自静态文件分别存在 5 台服务器上?还是集中存在 mysql 上用 blob 方式读写?还是额外买个大硬盘机器,让 5 台服务器分别挂载自己需要的到本地?

    一般这种是咋整的?
    11 replies  •  2019-06-13 17:40:01 +08:00
    ebingtel
    ebingtel
    Jun 13, 2019
    1
    量大么?如果大,就不要放在数据库了……集中式的会方便管理,同时不会拖累线上系统
    1daydayde
    1daydayde
    Jun 13, 2019
    2
    无脑 fastDFS
    set01
    set01
    Jun 13, 2019
    3
    有钱 oss,没钱自己搭个静态文件服务器
    kljsandjb
    kljsandjb
    Jun 13, 2019 via iPhone
    4
    S3 ?
    leorealman
    leorealman
    Jun 13, 2019
    5
    首选云存储,amazon s3、aliyun oss
    internelp
    internelp
    Jun 13, 2019
    6
    Nginx 可以做到完全复制后端的网站,这样你后端放一个站,前端用户访问的站需要的文件会去后端取,然后以相同的目录结构保存一份。
    参考: https://www.qiansw.com/using-nginxs-proxystore-cache-file-to-accelerate-access-speed.html
    msg7086
    msg7086
    Jun 13, 2019
    7
    如果你打算利用数据库的复制功能的话,存数据库也是可以的。文件系统本身就是一种数据库。
    如果想存本地的话也可以用分布式文件系统。
    反代或者自建存储也是一种做法。
    jamblues
    jamblues
    Jun 13, 2019 via iPhone
    8
    机器之间同步太耗时耗力了,而且如果是异地机房同步的话尽早放弃吧。

    比较节约成本和省事的办法:

    1. 将源图存 qiniu 或者 oss 三方存储上
    2. 部署 5 台 CDN,使用 nginx 反向代理至图源,并本地缓存
    3. 用 nginx 缓存管理,设置热数据存储大小就行了

    这方案扛千万或者亿级数据问题不大,更大的话提供不了参考。
    Vendettar
    Vendettar
    Jun 13, 2019
    9
    搞一个服务器专门用来存静态文件的吧
    BCy66drFCvk1Ou87
    BCy66drFCvk1Ou87
    Jun 13, 2019
    10
    可以搭个文件存储服务器,推荐 seaweedfs
    hanguofu
    hanguofu
    Jun 13, 2019 via Android
    11
    请问为什么不把 图片也放在 cdn 上?难道放在 oss 三方存储会便宜一些?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2076 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 15:05 · PVG 23:05 · LAX 07:05 · JFK 10:05
    ♥ Do have faith in what you're doing.