DeOldify Docker Compose部署Nginx反向代理HTTPS证书一键配置1. 项目概述如果你有一些珍贵的老照片但它们是黑白的想要让它们恢复色彩DeOldify就是你的最佳选择。这是一个基于深度学习技术的图像上色工具能够智能地将黑白照片转换成生动的彩色图像。传统的深度学习模型部署往往需要复杂的环境配置和专业知识但通过Docker Compose我们可以实现一键部署让整个过程变得简单易用。本文将带你一步步完成DeOldify的完整部署包括Nginx反向代理和HTTPS证书配置让你的图像上色服务安全稳定地运行。2. 环境准备与快速部署2.1 系统要求在开始之前请确保你的服务器满足以下基本要求Ubuntu 18.04 或 CentOS 7 操作系统Docker Engine 20.10.0Docker Compose 2.0.0至少4GB可用内存10GB可用磁盘空间开放80和443端口2.2 一键部署脚本创建部署目录并准备配置文件# 创建项目目录 mkdir -p deoldify-deployment cd deoldify-deployment # 创建Docker Compose配置文件 cat docker-compose.yml EOF version: 3.8 services: deoldify: image: deoldify:latest container_name: deoldify-app ports: - 7860:7860 volumes: - ./data:/app/data restart: unless-stopped environment: - PYTHONUNBUFFERED1 nginx: image: nginx:alpine container_name: deoldify-nginx ports: - 80:80 - 443:443 volumes: - ./nginx.conf:/etc/nginx/nginx.conf - ./ssl:/etc/nginx/ssl - ./data:/usr/share/nginx/html/data depends_on: - deoldify restart: unless-stopped certbot: image: certbot/certbot:latest container_name: deoldify-certbot volumes: - ./ssl:/etc/letsencrypt - ./data:/var/www/html depends_on: - nginx EOF2.3 Nginx配置文件创建Nginx配置文件cat nginx.conf EOF events { worker_connections 1024; } http { upstream deoldify { server deoldify-app:7860; } server { listen 80; server_name your-domain.com; location / { return 301 https://$host$request_uri; } location /.well-known/acme-challenge/ { root /var/www/html; } } server { listen 443 ssl; server_name your-domain.com; ssl_certificate /etc/nginx/ssl/live/your-domain.com/fullchain.pem; ssl_certificate_key /etc/nginx/ssl/live/your-domain.com/privkey.pem; location / { proxy_pass http://deoldify; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location /data/ { alias /usr/share/nginx/html/data/; } } } EOF3. 分步部署指南3.1 初始化部署环境首先更新系统并安装必要的工具# 更新系统包 sudo apt update sudo apt upgrade -y # 安装Docker curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh # 安装Docker Compose sudo curl -L https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose sudo chmod x /usr/local/bin/docker-compose # 创建必要的目录 mkdir -p ssl data3.2 获取SSL证书使用Certbot获取免费的HTTPS证书# 替换为你自己的域名 export DOMAINyour-domain.com # 获取SSL证书 docker-compose run --rm certbot certonly \ --webroot \ --webroot-path /var/www/html \ -d $DOMAIN \ --email your-emailexample.com \ --agree-tos \ --no-eff-email3.3 启动服务完成证书获取后启动所有服务# 启动DeOldify和Nginx服务 docker-compose up -d deoldify nginx # 查看服务状态 docker-compose ps # 查看服务日志 docker-compose logs -f4. 配置验证与测试4.1 服务健康检查验证服务是否正常启动# 检查DeOldify服务 curl http://localhost:7860/health # 检查Nginx服务 curl -I http://localhost # 检查HTTPS连接 curl -I https://your-domain.com --insecure4.2 测试图像上色功能使用Python测试上色功能import requests import base64 from PIL import Image from io import BytesIO def test_colorization(): # 测试图片URL使用一个示例黑白图片 test_image_url https://example.com/bw-test-image.jpg try: # 通过HTTPS访问服务 response requests.post( fhttps://your-domain.com/colorize_url, json{url: test_image_url}, verifyFalse # 仅用于测试生产环境应使用有效证书 ) if response.status_code 200: result response.json() if result[success]: # 解码并保存结果 img_data base64.b64decode(result[output_img_base64]) img Image.open(BytesIO(img_data)) img.save(test_result.jpg) print(测试成功结果已保存为 test_result.jpg) else: print(上色失败:, result) else: print(请求失败状态码:, response.status_code) except Exception as e: print(测试过程中出现错误:, str(e)) if __name__ __main__: test_colorization()5. 高级配置与优化5.1 性能优化配置优化Nginx和DeOldify的性能配置# 创建优化配置文件 cat nginx-optimized.conf EOF events { worker_connections 4096; multi_accept on; } http { # 性能优化配置 sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; # Gzip压缩 gzip on; gzip_vary on; gzip_min_length 1024; gzip_types text/plain text/css application/json application/javascript; upstream deoldify { server deoldify-app:7860; keepalive 32; } server { listen 443 ssl http2; server_name your-domain.com; ssl_certificate /etc/nginx/ssl/live/your-domain.com/fullchain.pem; ssl_certificate_key /etc/nginx/ssl/live/your-domain.com/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; # 静态资源缓存 location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { expires 1y; add_header Cache-Control public, immutable; } location / { proxy_pass http://deoldify; proxy_http_version 1.1; proxy_set_header Connection ; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 超时设置 proxy_connect_timeout 300s; proxy_send_timeout 300s; proxy_read_timeout 300s; } } } EOF5.2 自动证书续期设置定时任务自动更新SSL证书# 创建证书更新脚本 cat renew-certs.sh EOF #!/bin/bash docker-compose run --rm certbot renew docker-compose exec nginx nginx -s reload EOF chmod x renew-certs.sh # 添加到crontab每月自动更新 (crontab -l 2/dev/null; echo 0 3 1 * * /path/to/renew-certs.sh /var/log/cert-renew.log 21) | crontab -6. 故障排除与维护6.1 常见问题解决问题1证书获取失败# 检查80端口是否开放 sudo netstat -tlnp | grep :80 # 检查域名解析 nslookup your-domain.com # 临时关闭防火墙测试 sudo ufw disable问题2Nginx配置错误# 检查Nginx配置 docker-compose exec nginx nginx -t # 查看Nginx错误日志 docker-compose logs nginx | grep error问题3DeOldify服务异常# 重启DeOldify服务 docker-compose restart deoldify # 查看详细日志 docker-compose logs deoldify6.2 监控与日志管理设置日志轮转和监控# 创建日志管理配置 cat logrotate-deoldify EOF /var/lib/docker/containers/*/*.log { daily rotate 7 compress delaycompress missingok copytruncate } EOF # 安装监控工具 docker run -d \ --nameportainer \ -p 9000:9000 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer-ce7. 总结通过本文的指导你已经成功部署了一个完整的DeOldify图像上色服务具备以下特点安全可靠通过HTTPS加密传输保护用户数据安全高性能Nginx反向代理提供高效的请求处理和负载均衡易于维护Docker Compose实现一键部署和更新自动续期SSL证书自动更新无需手动干预可扩展支持后续的功能扩展和性能优化现在你的图像上色服务已经准备就绪可以开始处理那些珍贵的黑白老照片让它们重新焕发色彩了。如果在使用过程中遇到任何问题可以参考故障排除部分或者查看相关日志文件来解决问题。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。