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

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


一、需求背景

    存在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