使用docker部署静态网站有意义吗?

使用docker部署静态网站有意义吗?,docker,Docker,我已经创建了一个集群,在这里我可以使用docker顺利部署我的web应用程序。这真的很有趣,现在我也在考虑将我的静态网站部署到集群中 我应该这样做吗?或者这对于简单的静态网站来说太多了?理论上,使用Docker总是有意义的,因为如果许多用户使用您的应用程序网站,web服务器在某些时候将无法以有效的方式为所有这些请求提供服务。因此,使用集群Docker swarm将帮助您避免这种情况,因为Docker将平衡所有集群节点上的负载。此外,正如你所说,使用Docker很好,因为它将组织您的生产环境。我非

我已经创建了一个集群,在这里我可以使用docker顺利部署我的web应用程序。这真的很有趣,现在我也在考虑将我的静态网站部署到集群中


我应该这样做吗?或者这对于简单的静态网站来说太多了?

理论上,使用Docker总是有意义的,因为如果许多用户使用您的应用程序网站,web服务器在某些时候将无法以有效的方式为所有这些请求提供服务。因此,使用集群Docker swarm将帮助您避免这种情况,因为Docker将平衡所有集群节点上的负载。此外,正如你所说,使用Docker很好,因为它将组织您的生产环境。我非常喜欢Docker,它是如何组织和隔离环境的


在实践中,对于静态网站,web服务器上的负载比动态网站轻得多,因为您没有数据库查询、大型筛选操作、大型迭代以及大量后台逻辑,因此,如果您的网站每分钟不会被访问数百万次,这是没有意义的,因为这将是一项额外的开销,而不是额外的。

用知识思考docker的真正目的,我会说不

静态网站不需要docker实例的很多功能。Docker在需要服务器端计算的情况下非常理想,例如:执行服务器端应用程序逻辑并根据负载扩展到多个实例


静态站点不需要太多的计算功能,因为没有服务器端代码,内容在客户端浏览器中呈现。您只需要任何web服务器即可进行托管

在Docker容器中部署静态网站是有意义的,只要您使用占地面积小、开销低的服务器/映像。部署一个运行nginx的300MB+Ubuntu映像不符合这种描述

我建议将您的文件与一个小型静态文件服务器捆绑在一起,就像在一个非常小的映像上一样——最好是SCRATCH或Alpine Linux


我写了一篇关于这个主题的更广泛的文章。

如果你使用alpine+nginx图像打包你的静态站点,它可能是合适的

例如,在我目前的案例中,我让nginx服务于两个简单的静态站点:

用302个重定向捕获所有站点,使我的博客SEO友好 截图存储 这是我使用的docker swarm配置:

version: '3.7'

services:

  nginx:
    image: nginx:1-alpine
    networks:
      - oldcity
    volumes:
      - nginx_cache:/var/cache/nginx
      - nginx_run:/var/run
      - /etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
      - /etc/nginx/sites/:/etc/nginx/sites/:ro
      - /srv/www/cdn:/usr/share/nginx/html:ro
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints: [node.hostname == holod]
      labels:
        - "traefik.enable=true"
        - "traefik.docker.network=oldcity"
        - "traefik.port=80"
        - "traefik.protocol=http"
        - "traefik.screenshots.frontend.rule=Host:scr.vodolaz095.life"
        - "traefik.cdn.frontend.rule=HostRegexp:{catchall:.*}"
        - "traefik.cdn.frontend.priority=2"

volumes:
  nginx_cache:
  nginx_run:

networks:
  oldcity:
    driver: overlay
    external: true


在我使用的nginx前面

因此,我可以使seo友好配置的方式,我更了解-通过nginx配置,而不是使用traefik路线,我也可以有静态网站与截图更好地工作


但是,在这里扩展nginx可能是一个无用的想法——因为作为静态服务器,它的轻量级,并且没有任何东西会破坏它——所以没有理由在这里启动两个nginx实例。

对于可以在zip文件中自含并部署到共享基础设施的东西来说,这似乎是一个巨大的开销资源+维护。在基于云的基础设施中,您只需将其部署到对象存储(如S3)即可。为了补充这一问题,有一些云产品可以消除一些管理开销,但仍然可以从容器中启用服务站点。如果您在Azure上,请检查以下内容:。容器化应用程序的所有好处都没有集群的开销。