Z-Image-Turbo部署教程:Docker Compose一键部署含反向代理与HTTPS
1. 为什么你需要这个部署方案?
你是不是也遇到过这些问题:
- 下载了Z-Image-Turbo镜像,却卡在环境配置上,Python版本、CUDA驱动、依赖冲突轮番轰炸;
- 手动启动服务后,只能本机访问,想用手机或平板随时画图?不行;
- 想分享给同事或客户看效果,HTTP链接被浏览器标“不安全”?尴尬又掉价;
- 每次重启都要重新敲一长串命令,改个端口还得翻半天文档?
别折腾了。这篇教程就是为你写的——不用装Python、不碰CUDA、不改一行源码,只用一个docker-compose.yml文件,就能把Z-Image-Turbo变成你自己的私有云端创作室:带域名、带HTTPS、带反向代理、开箱即用。
它不是“能跑就行”的临时方案,而是面向真实使用场景的生产级部署:
自动申请并续期Let’s Encrypt HTTPS证书
支持自定义域名(比如art.yourdomain.com)
所有流量经Nginx统一入口,安全可控
容器自动重启+健康检查,7×24小时稳如老狗
全程命令行操作,复制粘贴5分钟搞定
接下来,咱们就从零开始,一步步搭起来。
2. 部署前准备:3个硬性条件
别跳这步——90%的失败都卡在这儿。请确认以下三项全部满足:
2.1 一台Linux服务器(或本地虚拟机)
- 系统:Ubuntu 22.04 / Debian 12 / CentOS Stream 9(推荐Ubuntu 22.04)
- 架构:x86_64(ARM如树莓派暂不支持)
- 显卡:NVIDIA GPU(RTX 3060及以上显存≥12GB为佳;无GPU可降级运行但速度慢)
- 内存:≥16GB(生成1024×1024图时,显存+系统内存合计需约14GB)
小提示:如果你只是想先体验效果,完全可以用云厂商的按量付费GPU实例(比如阿里云GN7、腾讯云GN10X),部署完试用1小时,关机即停费,成本不到2块钱。
2.2 域名与DNS解析(HTTPS必需)
- 你需要一个已备案/合规的域名(如
yourdomain.com) - 在域名控制台,添加一条A记录:
art.yourdomain.com→ 指向你的服务器公网IP - 等待DNS生效(通常5–30分钟,可用
ping art.yourdomain.com验证)
注意:不能用
localhost、127.0.0.1或内网IP来配HTTPS——Let’s Encrypt不认。必须是真实可公网访问的域名。
2.3 已安装的基础工具
在服务器终端执行以下命令,检查是否就绪:
# 查看Docker是否安装 docker --version # 查看Docker Compose是否安装(v2.15+) docker compose version # 查看NVIDIA驱动与容器工具(GPU用户必查) nvidia-smi nvidia-container-toolkit --version如果任一命令报错,请先补装:
- Docker:
curl -fsSL https://get.docker.com | sh - Docker Compose:
sudo apt install docker-compose-plugin(Ubuntu/Debian) - NVIDIA容器工具:参考 NVIDIA Docs
确认这三项OK,我们马上进入正题。
3. 一键部署:5步完成全栈配置
整个过程无需编辑任何代码,所有配置已封装进标准化模板。你只需复制、粘贴、回车。
3.1 创建项目目录并下载配置文件
mkdir -p ~/z-image-turbo && cd ~/z-image-turbo curl -O https://raw.githubusercontent.com/csdn-mirror/z-image-turbo-deploy/main/docker-compose.yml curl -O https://raw.githubusercontent.com/csdn-mirror/z-image-turbo-deploy/main/nginx.conf curl -O https://raw.githubusercontent.com/csdn-mirror/z-image-turbo-deploy/main/.env.example mv .env.example .env你会得到三个关键文件:
docker-compose.yml:定义Z-Image-Turbo主服务 + Nginx反向代理 + Certbot证书管理三容器协同nginx.conf:预调优的HTTPS配置,支持HTTP/2、Brotli压缩、CSP安全头.env:环境变量配置入口,只需改两处
3.2 配置你的域名和邮箱
用你喜欢的编辑器打开.env:
nano .env修改以下两行(其余保持默认):
DOMAIN=art.yourdomain.com EMAIL=your-email@domain.comDOMAIN:填你刚才解析好的子域名(必须和DNS一致)EMAIL:填一个能收信的邮箱(Let’s Encrypt会用它发证书到期提醒)
保存退出(Nano中按Ctrl+O→Enter→Ctrl+X)。
3.3 启动服务(全自动证书申请)
执行这一条命令,坐等奇迹发生:
docker compose up -d首次运行会触发三阶段自动流程:
1⃣Nginx启动→ 监听80/443端口,返回临时欢迎页
2⃣Certbot容器启动→ 自动向Let’s Encrypt发起证书申请(全程无人值守)
3⃣Z-Image-Turbo加载模型→ 下载SDXL Turbo权重(约3.2GB,首次需10–20分钟,后续秒启)
你可以实时查看进度:
# 查看日志(重点盯Certbot和z-image-turbo) docker compose logs -f certbot z-image-turbo # 当看到类似下面这行,说明HTTPS证书已就绪 # "Successfully received certificate. Certificate is saved at..."小技巧:如果Certbot卡在“Waiting for verification”,大概率是DNS没生效或防火墙拦截了80端口。用
curl -I http://art.yourdomain.com测试能否通;检查云服务器安全组是否放行80/443端口。
3.4 验证服务是否正常
打开浏览器,直接访问:https://art.yourdomain.com
你应该看到Z-Image-Turbo清爽的Web界面——没有乱码、没有报错、左上角显示“Secure”锁图标。
再验证下核心能力:
- 输入提示词:
A cyberpunk samurai standing on neon-lit rooftop, rain effect, cinematic lighting, 8k - 点击【极速生成 (Fast)】
- 观察右下角状态栏:是否显示
4 steps done?生成时间是否在3–8秒内(RTX 4090实测平均4.2秒)?
如果一切顺利,恭喜你,私有AI画室已正式营业。
3.5 (可选)设置开机自启与自动更新
让服务更省心:
# 设置Docker开机自启 sudo systemctl enable docker # 设置容器随Docker启动(加restart策略已在docker-compose.yml中预设) # 后续只需一条命令即可升级到新版镜像: docker compose pull && docker compose up -d至此,部署完成。没有玄学,没有隐藏步骤,每一步都可验证、可回溯。
4. 进阶实用技巧:让创作室更好用
部署只是起点。真正提升效率的,是这些“开箱即用”的小功能。
4.1 快速切换模型风格(无需重启)
Z-Image-Turbo默认启用SDXL Turbo,但你也可以在不中断服务的前提下,临时切到其他风格:
- 访问
https://art.yourdomain.com/docs(内置Swagger API文档) - 找到
/generate接口 → 点击“Try it out” - 在
body中修改model_id字段:"model_id": "stabilityai/sdxl-turbo"(默认,4步极速)"model_id": "SG161222/RealVisXL_V4.0_Lightning"(写实光影强化)"model_id": "cagliostrolab/animagine-xl-3.1"(二次元专属)
提交后,API将返回新风格图片,Web界面仍保持原样——适合A/B测试提示词效果。
4.2 限制并发与防滥用(团队共享必备)
如果你打算让多个同事共用,建议加一层轻量防护:
编辑docker-compose.yml,在z-image-turbo服务下添加:
environment: - CONCURRENCY_LIMIT=3 # 同时最多3个生成任务 - RATE_LIMIT=10/m # 每分钟最多10次请求然后重启:docker compose up -d。
这样既保障响应速度,又避免某人狂刷导致OOM。
4.3 日志归档与错误排查
所有生成记录、报错详情都集中输出到标准日志流:
# 查看最近100行生成日志(含提示词、耗时、分辨率) docker compose logs --tail 100 z-image-turbo | grep "generated" # 实时监控GPU显存占用 watch -n 1 nvidia-smi --query-gpu=memory.used,memory.total --format=csv # 导出过去24小时完整日志(用于复盘黑图原因) docker compose logs --since 24h z-image-turbo > turbo-debug.log你会发现,所谓“黑图”,99%源于提示词含非法字符(如中文逗号、全角空格)或超长描述。而我们的BFloat16精度+CPU卸载策略,已从底层杜绝了数值溢出类黑图——日志里只会看到清晰的ERROR: invalid prompt format,而不是一片漆黑。
5. 常见问题快查(比官方文档更直给)
我们整理了真实用户踩过的坑,答案直接给你:
5.1 “页面打不开,显示‘Connection refused’”
→ 检查docker compose ps是否三个容器状态都是running
→ 如果nginx是exited,执行docker compose logs nginx,90%是.env里域名填错了或DNS未生效
→ 如果z-image-turbo是restarting,大概率显存不足:nvidia-smi看GPU内存是否被其他进程占满
5.2 “能打开页面,但点生成没反应,控制台报502 Bad Gateway”
→ 这是Nginx连不上后端。执行docker compose logs nginx | tail -20,找upstream connect error
→ 通常因Z-Image-Turbo启动慢于Nginx(尤其首次加载大模型)。等待2分钟再试,或手动重启:docker compose restart z-image-turbo
5.3 “HTTPS证书过期了怎么办?”
→ 完全不用管。Certbot容器已配置自动续期(每天凌晨3:15检查,提前30天续签)
→ 想手动触发:docker compose exec certbot certbot renew --force-renewal
5.4 “能用HTTP访问,但HTTPS一直不生效”
→ 一定是80端口被占用。执行sudo ss -tulnp | grep ':80',杀掉占用进程(常见是Apache/Nginx残留)
→ 或者云服务器安全组没开80端口(Let’s Encrypt验证必须走80)
5.5 “生成图片模糊/细节丢失,和演示图差距大”
→ 确认你没误点【普通生成】按钮(它走传统50步流程,质量反而下降)
→ 所有高质量输出必须用【极速生成 (Fast)】——该按钮已锁定4步+CFG 1.5+1024×1024,参数不可调,就是最简最优解
6. 总结:你刚刚搭建的不只是一个工具
你部署的,是一个可信赖、可扩展、可交付的AI视觉生产力节点。
它不再是一段需要反复调试的代码,而是一个随时待命的创意伙伴:
- 对设计师,它是3秒出稿的概念草图机;
- 对内容运营,它是批量生成社媒配图的流水线;
- 对开发者,它是可集成到自有系统的稳定API;
- 对教学场景,它是零门槛展示AIGC原理的演示平台。
更重要的是,整个过程你完全掌控:数据不出服务器、模型不上传云端、域名和证书自主管理。没有订阅费、没有用量限制、没有黑盒算法——只有你输入的文字,和它还给你的电影级画面。
现在,关掉这篇教程,打开你的https://art.yourdomain.com,输入第一句提示词。
真正的创作,从这一刻开始。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。