You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提升Docker部署网站的加载速度?附docker-compose配置

网站加载慢的排查与优化方案

先确认是否是VM资源不足

  • 登录VM,用top/htop查看CPU、内存占用:如果CPU长期跑满(超过80%)、内存接近耗尽,那就是VM资源不足,直接扩容配置即可。
  • 检查容器资源使用:执行docker stats apache,查看容器的CPU使用率、内存占用、磁盘IO速率,如果容器CPU拉满或内存不足,也会拖慢响应速度。

Docker相关优化

  • 更换轻量镜像:弃用httpd:latest,改用httpd:alpine,镜像体积仅为原镜像的1/3左右,资源占用更低。
  • 优化挂载方式:如果是Windows/Mac使用Docker Desktop,本地目录绑定挂载的IO性能较差,建议将静态文件直接打包进自定义镜像(写个简单Dockerfile),或者改用Docker Volume挂载,能大幅提升IO性能。
  • 给容器添加资源限制:未做资源限制时,容器可能抢占VM全部资源,或被VM的OOM进程终止,在docker-compose中添加资源配置:
    services:
      apache:
        # 保留原有配置
        deploy:
          resources:
            limits:
              cpus: '0.5'  # 限制最多使用半核CPU
              memory: 256M # 限制最多使用256M内存
            reservations:
              cpus: '0.2'  # 预留0.2核CPU
              memory: 128M # 预留128M内存
    
  • 排查网络问题:使用外部vlan-ecm网络,可进入容器执行curl -s https://example.com测试对外访问速度,同时在VM上用mtr example.com检查是否存在网络丢包、带宽不足的情况。

Apache服务优化

  • 开启Gzip/Deflate压缩:启用mod_deflate模块,压缩HTML、CSS、JS、图片等静态资源,减少传输体积,提升加载速度。
  • 配置浏览器缓存:启用mod_expires,为静态资源设置过期时间(比如图片设30天,CSS/JS设7天),让浏览器缓存资源,避免重复请求。
  • 调整连接数参数:根据实际并发量修改MaxRequestWorkers(最大工作进程数)、MaxKeepAliveRequests(每个连接的最大请求数)、KeepAliveTimeout(连接超时时间),避免连接排队导致卡顿。
  • 启用HTTP/2:开启mod_http2模块,利用多路复用特性同时传输多个资源,比HTTP/1.1的加载效率更高。

静态资源优化

  • 提前压缩文件:用Terser压缩JS,CleanCSS压缩CSS,ImageOptim压缩图片,尽可能减小文件体积。
  • 实现懒加载:对图片、视频等大资源设置懒加载,仅在用户滚动到对应区域时才加载,提升首屏加载速度。
  • 静态资源托管到CDN:如果是公网网站,将静态资源部署到CDN,让用户从就近节点获取资源,大幅缩短加载耗时。

内容的提问来源于stack exchange,提问作者jack_dan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 15:38:38