SuperAPI AI 工具集

proxy

部署与运维

查看项目

更新于 10-16 05:06

技能介绍

用途:配置并运维 kamal-proxy,让 Kamal 部署的应用在 80 和 443 端口实现无间断、零停机部署。kamal-proxy 运行于 80/443,将请求转发到应用容器;部署时 Kamal 确保代理运行、启动新容器,待新容器对 GET /up 返回 200 OK 后切换流量,再停旧容器。

主要能力与用法:所有配置写在 config/deploy.yml 的 proxy: 块中,部署时生效。host/hosts 指定路由域名;app_port 指定容器端口(默认 80);ssl: true 开启 Let's Encrypt 自动 HTTPS,要求单服务器、设置 host、DNS 直接指向服务器、443 开放,证书自动续期,CDN 代理会导致签发失败;也可用 certificate_pem/private_key_pem 从 .kamal/secrets 加载自定义证书,证书或密钥无效会使部署失败,禁止硬编码。ssl: true 时默认不转发 X-Forwarded-For/X-Forwarded-Proto,需设 forward_headers: true;并用框架主机白名单(如 Rails config.hosts、Django ALLOWED_HOSTS、NextAuth trustHost)。healthcheck 可设 path(默认 /up)、interval(1)、timeout(5);response_timeout 默认 30 秒;buffering 可配置请求/响应缓冲、体积与内存上限。修改后执行 kamal deploy 应用。

运维与限制:可用 kamal proxy boot/reboot/restart/start/stop/details/logs/remove 管理代理容器;排查路由或 SSL 问题先看 details 与 logs;升级或重启用 kamal proxy reboot(每台服务器短暂中断并需确认),可加 --rolling,或用 pre-/post-proxy-reboot 钩子配合负载均衡。boot/run 配置(端口、日志大小、镜像版本)位于 proxy/run。主角色默认启用代理,其他角色可用 proxy: false/true 控制。以上为资料明确内容,其他细节暂未提供。