程序员茄子
全部
编程
代码
资讯
案例
综合
联系我们
运维 相关技术文章(第6页)
php
mysql
shell
go
vue
css
api接口对接
支付接口对接
systemd v259 升级笔记:run0 提权、musl 编译,以及 v260 要删的几样东西
综合
systemd v259 升级笔记:run0 提权、musl 编译,以及 v260 要删的几样东西
2026-09-30 21:01:12
systemd v259 关键变化与升级注意点:run0 --empower 不切 UID 的提权、首次支持 musl 编译及其限制、dlopen 按需加载依赖、journald 默认持久化、NAT 只剩 nftables,以及 v260 将移除 SysV 脚本并抬高最低版本要求。
systemd
Linux
运维
后门
Certimate:16MB 内存的自托管 SSL 证书自动化,从 ACME 申请到推送部署
案例
Certimate:16MB 内存的自托管 SSL 证书自动化,从 ACME 申请到推送部署
2026-09-29 21:04:17
Certimate 是一个 Go 写的自托管 SSL 证书管理工具,把申请、部署、续期、监控串成可视化工作流:支持 DNS-01/HTTP-01 两种 ACME 验证、单域名/通配符/IP 证书、PEM/PFX/JKS 输出,集成 70+ 域名注册商 DNS API 与 Let's Encrypt/ZeroSSL。运行时内存约 16MB、无外部依赖,Docker 或二进制都能跑。适合不想把证书私钥托管给第三方的团队。
运维
SSL证书
自托管
ACME
开源工具
Go
Redis 8.4 Atomic Slot Migration:把 Slot 迁移从「逐 Key 搬迁」改成整槽复制 + 原子交接
案例
Redis 8.4 Atomic Slot Migration:把 Slot 迁移从「逐 Key 搬迁」改成整槽复制 + 原子交接
2026-09-29 21:03:00
Redis 8.4 的 Atomic Slot Migration 把 Slot 迁移从「逐 Key 搬迁、边迁边切」换成「先复制整槽、再一次性原子交接」,配套 CLUSTER MIGRATION 命令族。旧方式会长期暴露「部分 Key 已迁」的中间态,带来 ASK/TRYAGAIN 重定向、多 Key 操作不稳定、大 Key 尾延迟等问题。本文给出七步流程、大 Key 分段传输与旧数据清理回退条件,并对照 Valkey 9.0 的同类实现。
Redis
运维
RedisCluster
槽迁移
数据库
Valkey
制造
Docker 里把 Redis 6.2 升到 8.8:dbsize 变 0、数据像丢了、启动直接 FATAL
案例
Docker 里把 Redis 6.2 升到 8.8:dbsize 变 0、数据像丢了、启动直接 FATAL
2026-09-29 21:03:00
Docker 下把 Redis 从 6.2-alpine 升到 8.8-alpine,实际会撞上三类问题:匿名 volume 让旧数据不跟随、6.2 的旧配置项让 8.x 启动直接 FATAL CONFIG FILE ERROR、以及最坑的一条——加了 --appendonly yes 后 Redis 只读 AOF 不读 dump.rdb,dbsize 直接返回 0。本文记录两种部署场景的完整步骤、BGSAVE/docker cp/CONFIG SET appendonly yes 的正确顺序,以及 RDB 单向兼容的回滚注意点。
Redis
Docker
运维
持久化
升级
AOF
OpenSSL 4.0 迁移:ASN1_STRING 转 opaque、engines 移除,nginx/PHP 需重新编译
资讯
OpenSSL 4.0 迁移:ASN1_STRING 转 opaque、engines 移除,nginx/PHP 需重新编译
2026-09-29 21:03:00
OpenSSL 4.0.0(2026-04-14)是 feature release 而非 LTS,支持到 2027-05。迁移前要核对的不兼容项不少:ASN1_STRING 转为 opaque、大量 X509 API 加 const(如 X509_get_subject_name 返回值变 const)、engines 被移除、SSLv3 移除、废弃 EC 曲线默认关闭、c_rehash 改 openssl rehash、libcrypto 不再用 atexit 清理。本文按类列出变更,并提醒 nginx/PHP 等依赖组件需重新编译。
OpenSSL
运维
TLS
加密库
升级
兼容性
nginx 1.30.0 稳定版升级:proxy_http_version 默认变 1.1、upstream keepalive 默认开启,老后端要先写回退
综合
nginx 1.30.0 稳定版升级:proxy_http_version 默认变 1.1、upstream keepalive 默认开启,老后端要先写回退
2026-09-29 21:02:08
nginx 1.30.0 稳定版整合 1.29.x 后,默认代理行为变了:proxy_http_version 默认由 1.0 改为 1.1,upstream keepalive 默认开启,且默认不再发送 Connection 头。老后端依赖短连接的场景升级后可能出问题。本文给出这个最易踩的坑与回退写法,并梳理 MPTCP、Early Hints、HTTP/2 上游、ECH、sticky sessions、max_headers 等新特性。
nginx
运维
反向代理
upstream
HTTP
1.1
配置
K8s v1.36:externalIPs 进入三阶段弃用,gitRepo 卷已永久禁用
综合
K8s v1.36:externalIPs 进入三阶段弃用,gitRepo 卷已永久禁用
2026-09-29 21:02:08
Kubernetes v1.36 的重点是清理历史包袱:Service 的 .spec.externalIPs 进入弃用,并给出 v1.36 警告、最早 v1.40 禁用、最早 v1.43 完全移除的三阶段时间表;gitRepo 卷驱动被永久禁用、不可再启用。本文把升级前要处理的项按影响面排开,并给出 LoadBalancer/NodePort/Gateway API 替代方案与 init 容器迁移路径。
Kubernetes
k8s1.36
externalIPs
gitRepo
运维
集群升级
风格
Pier:单个 15MB Rust 二进制做自托管 PaaS,空闲 20–40MB,512MB VPS 能跑三四个应用
综合
Pier:单个 15MB Rust 二进制做自托管 PaaS,空闲 20–40MB,512MB VPS 能跑三四个应用
2026-09-29 20:02:45
Pier 是用 Rust 写的自托管 PaaS,单个约 15MB 二进制、空闲占 20–40MB,把容器管理、Docker Compose、Traefik 自动 HTTPS、Git-to-deploy、告警、多服务器 agent、S3 备份和 35+ 模板打包进一个进程。本文整理它的三种安装方式、与 Coolify 的资源对比、Railpack 自动构建,以及 AGPL-3.0 与商标边界。
自托管
PaaS
Rust
Docker
运维
单二进制 + SQLite 搭私有镜像仓库:stashhub 兼做 Docker Hub 拉取缓存
综合
单二进制 + SQLite 搭私有镜像仓库:stashhub 兼做 Docker Hub 拉取缓存
2026-09-29 20:01:41
stashhub 是 Go 单二进制 + SQLite 的自托管镜像仓库,兼容 OCI Distribution v2,可同时作为私有 registry 与 Docker Hub/GHCR 拉取缓存。本文整理它的 docker compose 部署、S3 存储切换、mirror 上游与四维缓存策略,以及 HTTPS 强制、413、filesystem→S3 不自动迁移等实际踩坑点。
Docker
镜像仓库
OCI
运维
自托管
Docker Engine 28.5 升级笔记:rootless 网络回退 pasta,以及一批 API 与 Go-SDK 弃用
综合
Docker Engine 28.5 升级笔记:rootless 网络回退 pasta,以及一批 API 与 Go-SDK 弃用
2026-09-28 21:04:35
Docker Engine 28.5 的升级要点:dockerd-rootless.sh 在无 slirp4netns 时改用 pasta(passt)、拒绝 ROOTLESSKIT_NET=host;移除 legacy CBC 密码套件、弃用 KernelMemoryTCP 与 InspectResponse 的 Parent/DockerVersion,并列出下一版本将移除的 Go-SDK 符号。
Docker
容器
运维
API
升级
systemd timer 替代 crontab:从 crontab 被静默清空说起,五个坑与一条不触发的排查路径
综合
systemd timer 替代 crontab:从 crontab 被静默清空说起,五个坑与一条不触发的排查路径
2026-09-28 20:03:18
从一次 crontab 被静默清空导致的证书续期失败讲起,说明为什么把定时任务迁到 systemd timer:文件隔离、Environment 显式声明、OnUnitActiveSec 依赖、journalctl 替代 cron 垃圾邮件、Persistent=true 宕机补跑。附 timer 不触发的排查(只 start 不 enable)、cron 迁移清单,以及 WordPress wp-cron 用 timer 收口的实战配置。
systemd
timer
crontab
定时任务
Linux
运维
用 Caddy 取代 Nginx 做反向代理:三行 Caddyfile 自动 HTTPS 与续期,附 Compose 写法
综合
用 Caddy 取代 Nginx 做反向代理:三行 Caddyfile 自动 HTTPS 与续期,附 Compose 写法
2026-09-28 20:02:18
面向 VPS/Docker 上跑服务的开发者与运维:用 Caddy 替代 Nginx 做反向代理,内置自动 HTTPS 申请与续期。给出三行 Caddyfile 的最小配置、多域名与 header 写法、apt 安装与 fmt/validate/reload 流程、Docker Compose 集成(caddy_data 必须持久化、Let's Encrypt 速率限制),以及从 Nginx 迁移需要权衡的几处差异。
Caddy
Nginx
反向代理
Docker
Compose
HTTPS
运维
CAD
containerd 1.7 EOL 与 K8s 1.35 cgroup v1 硬失败
综合
containerd 1.7 EOL 与 K8s 1.35 cgroup v1 硬失败
2026-09-27 21:03:10
containerd 1.7 于 2026-09-01 EOL,Kubernetes 1.35 的 failCgroupV1 默认 true,会让只有 cgroup v1 的节点上 kubelet 拒绝启动,且 1.35 是最后一个支持 containerd 1.x 的版本。本文把运行时支持矩阵、指标 kubelet_cri_losing_support 与升级动作排成一次审计。
Kubernetes
containerd
K8s
1.35
cgroup
v2
运维
脚本终端能跑放进 crontab 就没了反应:环境变量、flock 与排查顺序
代码
脚本终端能跑放进 crontab 就没了反应:环境变量、flock 与排查顺序
2026-09-27 20:02:14
脚本在终端里跑得正常,放进 crontab 却毫无反应,问题基本都出在「环境不一致」。本文按时间语法、环境变量、重定向、flock 防重叠、时区、Docker 容器五个坑逐条拆解,附排查顺序:systemctl status cron、grep CRON /var/log/syslog、journalctl -u cron、crontab -l,以及用 env 输出对比 cron 实际环境的方法。
crontab
Shell
flock
定时任务
运维
Ubuntu unattended-upgrades 把 nginx 升到 1.24.0-2ubuntu7.10,worker 全线 SIGSEGV,一条 apt upgrade 修好
案例
Ubuntu unattended-upgrades 把 nginx 升到 1.24.0-2ubuntu7.10,worker 全线 SIGSEGV,一条 apt upgrade 修好
2026-09-26 21:07:06
一次例行重启后两个站点间歇不可达、Ghost 后台白屏,根因是 Ubuntu unattended-upgrades 自动装的 nginx 1.24.0-2ubuntu7.10 回归,worker 每个请求 SIGSEGV。本文复盘 systemd 显示 active 但 worker 循环崩溃的排查,以及一条 apt upgrade 修好的过程。
运维
nginx
Ubuntu
故障复盘
包管理
画布
rootless Docker 的 slirp4netns 被 OOM 杀掉,6 小时后 json-file 日志缓冲把 daemon 冻死
案例
rootless Docker 的 slirp4netns 被 OOM 杀掉,6 小时后 json-file 日志缓冲把 daemon 冻死
2026-09-26 21:06:20
rootless Docker 下 slirp4netns 泄漏到 3.54GB 被 OOM 杀掉,所有容器失去出站网络;随后 json-file 日志驱动的 blocking 缓冲涨到 6.25GB,logging 进程被杀导致 Docker daemon 死锁。本文复盘三幕过程,并给出日志 non-blocking 配置与 pasta 迁移方案。
运维
Docker
容器
故障复盘
日志
冗余
Kubernetes ingress 六小时 502:default_server 挂在一个被健康检查清空的 upstream 上
案例
Kubernetes ingress 六小时 502:default_server 挂在一个被健康检查清空的 upstream 上
2026-09-26 21:06:20
一次 Kubernetes ingress 六小时 502:后端 Deployment 全挂,nginx 健康检查把 upstream 池清空,而该池是 80/443 的 default_server,所有未匹配域名一起 502。本文复盘错误日志、fall=5 清池过程,以及超时、max_fails、DNS upstream、keepalive 的一组修复。
运维
nginx
Kubernetes
故障复盘
高可用
MySQL 9.7 的 caching_sha2_password:切到 PBKDF2_SHA512 后,enforce 会把账号按在登录口改密
综合
MySQL 9.7 的 caching_sha2_password:切到 PBKDF2_SHA512 后,enforce 会把账号按在登录口改密
2026-09-26 21:04:34
MySQL 9.7 的 caching_sha2_password 新增 PBKDF2_SHA512 存储格式,用 caching_sha2_password_storage_format 切换首选格式;开启 enforce 会让非首选格式账号登录后强制改密。本文给出两个变量、SQL 操作、副本升级顺序与服务账号风险。
MySQL
认证
安全
升级
运维
MySQL 9.7:innodb_log_writer_threads 默认值改为按 log_bin 和逻辑 CPU 数判断
综合
MySQL 9.7:innodb_log_writer_threads 默认值改为按 log_bin 和逻辑 CPU 数判断
2026-09-26 21:04:03
MySQL 9.7 里 innodb_log_writer_threads 的默认值改为按 log_bin 是否开启、以及可用逻辑 CPU 数共同判断:开 binlog 以 32 核为界,关 binlog 以 4 核为界。本文给出判断伪代码、受影响场景,以及 binlog_transaction_dependency_history_size 上调等 9.7 变化。
MySQL
InnoDB
配置
升级
运维
Redis 8.8:INCREX 一条命令做窗口限流,hash 字段级通知漏配 h 就收不到
编程
Redis 8.8:INCREX 一条命令做窗口限流,hash 字段级通知漏配 h 就收不到
2026-09-26 20:02:44
Redis 8.8 把窗口计数器限流收进一条 INCREX 原子命令,省掉 Lua 脚本;streams 新增 XNACK 让消费者显式 NACK 释放消息;hash 支持字段级 subkey 通知,但 notify-keyspace-events 必须同时带 h 和频道类型标志,漏配就收不到事件。文末给 Docker 启动命令与事件列表。
Redis
运维
限流
Streams
数据库
Node.js 27 起一年一版:奇偶版本区分取消,所有版本都进 LTS
编程
Node.js 27 起一年一版:奇偶版本区分取消,所有版本都进 LTS
2026-09-26 00:04:02
Node.js 官方宣布从 27.x 起把每年两个大版本改为每年一个,取消奇数/偶数区分,所有版本都会进入 LTS,并新增允许 semver-major 的 Alpha 通道。本文整理新阶段时长、新旧对照、对 CI 与库作者的影响,以及 2026-10 的 v24/v26 切换节点与未来十年时间线。
node.js
lts
版本管理
发布计划
运维
工程实践
日历
Kamal 2 部署笔记:kamal-proxy 如何切换流量,deploy.yml 怎么填
编程
Kamal 2 部署笔记:kamal-proxy 如何切换流量,deploy.yml 怎么填
2026-09-25 21:31:50
Kamal 2 用 Docker 把 web 应用部署到任意服务器,零停机。梳理 kamal-proxy 的流量切换与 drain、deploy.yml 关键字段、kamal deploy 九步时序、healthcheck/boot.limit 超时换算,以及单机多应用与 accessories 的取舍。
Kamal
Docker
运维
部署
kamal-proxy
商业
用 systemd socket activation 让 8080 端口按需拉起服务
编程
用 systemd socket activation 让 8080 端口按需拉起服务
2026-09-25 21:31:02
systemd socket activation 让服务连接到达才启动,节省内存、重启不丢连接。含 .socket/.service 单元示例、Accept=yes 模板单元、空闲超时、systemd-socket-proxyd 包装不支持 socket 激活的程序,以及 LISTEN_PID/NConnections 排错。
systemd
Linux
运维
systemd-socket-proxyd
服务管理
时序
MySQL 慢查询日志排错:订单查询 Query_time 从 15.2s 到 0.02s
案例
MySQL 慢查询日志排错:订单查询 Query_time 从 15.2s 到 0.02s
2026-09-25 21:07:25
一次电商订单查询接口超时的排错记录:用慢查询日志定位到 Rows_examined 50 万、Rows_sent 仅 100 的全表扫描 SQL,建联合索引 (category_id,status,sales) 并去掉 SELECT * 后 Query_time 从 15.2s 降到 0.02s。文中给出慢查询日志相关参数的动态开启语句与 pt-query-digest 用法。
MySQL
慢查询
索引
性能优化
运维
案例
大家都在搜索什么?
devops
易支付
一个官网+多少钱
统一接受回调
统一回调
python
sub
node
宝塔日志
mysql
shell
ElasticSearch
css
vue
api接口对接
2025
支付接口对接
go
php
php回调
上一页
1
…
3
4
5
6
7
8
9
…
12
下一页
共 12 页
到第
页
确定