使用Docker Swarm 和 Docker Stack 快速搭建一个nginx集群【测试成功】

艺帆风顺 发布于 2025-04-03 18 次阅读


一、需求背景

    存在3台服务器,使用其搭建nginx集群,用户通过3个地址都能访问配置的同一个nginx前端页面。

    服务器1:192.168.3.88(Master)

    服务器2:192.168.3.45(Node45)

    服务器3:192.168.3.47(Node47)

二、创建docker swarm集群

    创建过程:略

    创建完毕后,使用docker node ls 查看集群节点。

    使用docker info查看集群状态。

    [root@Master nginx]# docker node lsID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION6gmkg2uqo4lot0do30e6l1kt6 * Master Ready Active Leader 24.0.5t6r9907o7p273fulmehvy8d6u Node45 Ready Active 24.0.5v1c606b62prsg6tin8fi294sh     Node47     Ready     Active                          24.0.5

    三、创建nginx集群服务

        编写一个docker-compose.yml文件,内容如下:

        注意:

            1)映射本地nginx.conf文件到集群nginx容器中。

            2)映射本地nginx前端程序目录文件到集群nginx容器中。

      version: '3'
      services:
      nginx:
      image: nginx:latest ports: - "80:80" volumes: - ./nginx.conf:/etc/nginx/nginx.conf - ./web:/usr/share/nginx/html networks: - nginx-network

      networks:
      nginx-network:

      定义的nginx.conf配置文件内容如下:

        events { worker_connections 1024;}
        http { server { listen 80;
        location / {# root /docker/nginx/web; root /usr/share/nginx/html; index index.html; } }}

        三、部署nginx集群服务

        使用以下命令在Docker Swarm中部署服务:

        docker stack deploy -c docker-compose.yml nginx-stack

        查看集群服务状态: docker service ls

          [root@Master nginx]# docker service lsID NAME MODE REPLICAS IMAGE PORTSoeen7uf9za44   nginx-stack_nginx   replicated   1/1        nginx:latest   *:80->80/tcp