自托管 MinIO 存图片,体验如何?
不想给云厂商交对象存储的钱,自建了一套 MinIO 存用户上传图片,S3 兼容 API,配 Next.js 的 image loader 很顺。 部署很简单,docker compose 一把梭,挂个挂载点就行。配合 mc 客户端做 bucket 管理和生命周期策略。 踩过的坑:
Posts
像论坛一样发起讨论,适合问题、观点、工具推荐和经验交流。
不想给云厂商交对象存储的钱,自建了一套 MinIO 存用户上传图片,S3 兼容 API,配 Next.js 的 image loader 很顺。 部署很简单,docker compose 一把梭,挂个挂载点就行。配合 mc 客户端做 bucket 管理和生命周期策略。 踩过的坑:
pnpm 项目在 CI 里跑 install 慢,缓存总是配不好。试了几种方案,记录下正确的姿势。 GitHub Actions: 关键点: 必须用 frozen lockfile ,否则可能改 lockfile。 cache key 用 pnpm lock.yaml 的 has
团队在选部署策略,蓝绿 vs 滚动 vs 金丝雀,每种都说自己好。说说我的理解。 蓝绿:两套环境,切流量瞬间完成,回滚秒级。资源占用翻倍。 滚动:渐进替换,资源省,但回滚慢,滚动期间混合版本。 金丝雀:先放一小撮流量观察,最稳,但配置最复杂。 我们的选择: 数据库 migrati
有些定时任务和数据处理 Job,想用云上的 Serverless 容器(阿里云 ECI / 腾讯云 EKS)跑,按量付费。但担心费用失控。 算过一笔账: ECI 按秒计费,单价高于自建 ECS,但不用常驻。 短时、突发、低频任务 → ECI 更省。 高频长跑任务 → 自建便宜。
应用要暴露 liveness / readiness 两个 health endpoint,但 "应该查什么" 一直没统一。说说我们的实践。 liveness(是否该重启我):只查进程活着、event loop 不卡。 不要 查依赖。 readiness(是否该给我流量):查关键
Nginx 限流 ( limit req ) 一直配不好,要么限不住,要么误伤正常用户。 基础配置: rate=10r/s 是平均速率, burst=20 允许瞬时 20 个排队, nodelay 让排队的不延迟直接放行。 调参心得: 看接口真实容量,留 30% 余量。 区分接口
Postgres 跑久了,表越来越大、查询越来越慢,往往是 autovacuum 没跟上,dead tuples 堆积。 排查: VACUUM (VERBOSE) mytable; 看 dead tuple 比例。 pg stat user tables 看 last vacuu
Redis 持久化方案纠结很久:RDB 简单恢复快,AOF 数据安全。生产该用哪个? 简单对比: RDB:定时快照,文件小恢复快,但故障可能丢几分钟数据。 AOF:记录每个写命令,最多丢 1 秒,但文件大、恢复慢。 生产推荐:两者都开(RDB 做快照兜底,AOF 做实时持久化)。
K8s 资源 request/limit 配不好,要么 OOM 被杀,要么浪费资源。分享我们的经验值。 经验: request 决定调度,要贴近真实平均用量。 memory limit 必须设,否则 Pod 可能吃光节点内存。 CPU limit 谨慎设,容易被 throttle
Coolify 号称 "自托管的 Vercel/Heroku",半年前部署了一套,跑内部项目和 Side Project。整体体验分享一下。 优点: git push 自动部署, Preview Environment、回滚都有。 内置数据库(Postgres/Redis/Mon
安全审计要扫镜像里的 CVE,试了几个工具,分享一下对比。 Trivy:开源、快、报告友好,CI 集成方便。强推。 Grype:Anchore 出的,跟 Syft 配合做 SBOM。 Snyk:商业,IDE 集成好,但收费。 Docker Scout:官方新出的,跟 docker
metrics、logs、traces 被叫 "可观测性三件套",对小项目来说全套上成本太高。聊聊我们的最小可用方案。 落地顺序: metrics 先上:Prometheus + Grafana,看 QPS、延迟、错误率。 logs 接 Loki,集中查日志。 traces 最后