Linux 后台任务用 disown 让进程不随终端退出
已经在前台运行的任务按 Ctrl+Z 暂停然后 bg 放到后台再用 disown 让它不随终端退出而结束。本文解释前后台作业控制和 SIGHUP 信号的关系。
Docker 容器退出后数据会丢失吗
容器删除后容器内写入的数据会丢失因为写在了容器的可写层。用 volume 或 bind mount 挂载宿主机目录才能持久化数据。本文解释容器文件系统的层次结构。
Nginx 返回 504 Gateway Timeout 上游响应太慢
Nginx 返回 504 表示上游服务器在指定时间内没有返回响应。调整 proxy_read_timeout 可以让 Nginx 等久一点但不解决上游慢的问题。本文教你用 curl 分段排查上游慢在哪一步。
Docker run --rm 参数的作用和场景
--rm 参数让容器退出后自动删除不会留下已停止的容器。适合测试和临时运行的任务。长期运行的服务不要加 --rm 否则日志就找不到了。
Nginx 限制 IP 访问用 allow 和 deny
Nginx 通过 allow 和 deny 指令按顺序匹配 IP 访问规则最后匹配的是默认行为。只允许特定 IP 访问管理后台的场景可以用 http_access_module。本文给出白名单的黑名单两种配置方式。
Docker Compose 端口映射宿主机端口被占用了
Docker Compose 中的 ports 映射如果宿主机端口已被占用容器启动失败。改成随机映射让宿主机自动分配端口或者先查占用的进程处理掉。本文说明排查方法。
Linux 查看端口被哪个进程占用用 ss 不用 netstat
ss -tlnp 比 netstat -tlnp 更快更现代。ss 直接从内核获取 socket 信息netstat 遍历 /proc。本文给出 ss 的常用组合包括过滤特定端口和显示进程名。
Docker 容器内不推荐用 root 用户运行
Docker 容器默认以 root 运行存在安全风险一旦被入侵攻击者获得 root 权限。Dockerfile 里通过 USER 指令切换到非 root 用户运行。本文展示创建运行用户的完整 Dockerfile。
Nginx 配置了 HTTPS 但 Chrome 仍然报 Not Secure
Nginx 配置了证书但 Chrome 还是报不安全通常是因为没有配置中间证书链或证书链不完整。浏览器需要完整的链才能验证到根证书。本文解释如何获取和配置完整链。
Dockerfile 最佳实践 多阶段构建减少镜像体积
Dockerfile 写得不好镜像体积很容易膨胀到 1GB 以上。多阶段构建让最终镜像只包含运行所需文件不包含编译工具链。本文用 Go 应用的 Dockerfile 展示从 800MB 降到 20MB 的过程。
Docker 不限制日志文件大小磁盘会被撑爆
Docker 默认不限制日志文件大小长期运行后日志可能撑满磁盘。docker run 加 log-opt max-size 10m max-file 3 或者在 compose 和 daemon.json 里全局配置可以限制。
Shell 命令找不到先检查 PATH
装了工具却打不开报 command not found 通常不是没装而是可执行文件不在 PATH 包含的目录里。echo $PATH 排查找到安装路径加到 PATH 里即可。
Nginx 413 Request Entity Too Large 请求体太大
Nginx 默认限制请求体 1MB 超过返回 413 上传文件时经常遇到。这个配置在 http/server/location 三层都能设置找错了层级改了也不生效。本文教你准确找到限制层级。
scp 断了要重传 rsync 可以续传
scp 断了要重传 rsync 可以续传是开发中经常遇到的问题。本文从实际场景出发分析原因并给出可操作的解决方案适合正在排查这个问题的开发者参考。
Nginx 代理 WebSocket 要配 header
Nginx 代理 WebSocket 要配 header是开发中经常遇到的问题。本文从实际场景出发分析原因并给出可操作的解决方案适合正在排查这个问题的开发者参考。
Docker apt-get update 太慢换国内源
Docker apt-get update 太慢换国内源是开发中经常遇到的问题。本文从实际场景出发分析原因并给出可操作的解决方案适合正在排查这个问题的开发者参考。
Nginx root 和 alias 路径拼接不同
Nginx root 和 alias 路径拼接不同是开发中经常遇到的问题。本文从实际场景出发分析原因并给出可操作的解决方案适合正在排查这个问题的开发者参考。
Docker 容器日志时区不对差8小时
Docker 容器日志时区不对差8小时是开发中经常遇到的问题。本文从实际场景出发分析原因并给出可操作的解决方案适合正在排查这个问题的开发者参考。
Nginx 502 Bad Gateway 后端到底挂了没有
Nginx 502 Bad Gateway 后端到底挂了没有是开发中经常遇到的问题。本文从实际场景出发分析原因并给出可操作的解决方案适合正在排查这个问题的开发者参考。
Buildpacks 云原生构建
告别 Dockerfile,让平台根据源码自动检测依赖并构建 OCI 镜像。