docker-compose同一镜像多个服务共用端口或不同端口

使用docker-compose部署某个服务,使用同一个镜像,这里有两种方式来部署:

共用端口

services:
  test-service:
    image: myimage
    ports:
      - "5000:5000"
    deploy:
      replicas: 3

这样配置三个服务共用一个端口,相当于多节点负载均衡的运行三个服务。

不同端口

services:
  test-service:
    image: myimage
    ports:
      - "5000-5002:5000"
    deploy:
      replicas: 3

这样配置三个服务会被分配到三个不同的端口,5000,5001,5002,如果需要负载均衡,可以在nginx中进行更详细的配置,比如根据IP分配:

upstream my_service {
   ip_hash;
   server 127.0.0.1:5000;
   server 127.0.0.1:5001;
   server 127.0.0.1:5002;
}

server {
    listen 443 ssl http2;
    server_name api.test.com;
    location / {
       proxy_pass       http://my_service;
       proxy_set_header Host      host;
       proxy_set_header X-Real-IPremote_addr;
       proxy_set_header X-Forwarded-For proxy_add_x_forwarded_for;
       proxy_http_version 1.1;
       proxy_set_header Upgradehttp_upgrade;
       proxy_set_header Connection "upgrade";
    }
}
docker-compose同一镜像多个服务共用端口或不同端口

原文链接:https://beltxman.com/3962.html,若无特殊说明本站内容为 行星带 原创,未经同意禁止转载。

发表评论

您的电子邮箱地址不会被公开。

Scroll to top