Perl 无法调试Nginx负载平衡器

Perl 无法调试Nginx负载平衡器,perl,nginx,docker,load-balancing,Perl,Nginx,Docker,Load Balancing,我正在尝试使用Nginx为在docker容器中运行的perl Dancer2应用程序设置负载平衡器。 我有一个问题,我不知道如何调试: 如果在我的nginx.conf中,我只在upstrem块中设置了一台服务器,它运行正常。但第二次添加另一台服务器时,它无法执行登录 我的nginx.conf文件如下所示: worker_processes 2; events { worker_connections 512; } http { upstream pb { serve

我正在尝试使用Nginx为在docker容器中运行的perl Dancer2应用程序设置负载平衡器。 我有一个问题,我不知道如何调试: 如果在我的
nginx.conf
中,我只在
upstrem块中设置了一台服务器,它运行正常。
但第二次添加另一台服务器时,它无法执行登录 我的
nginx.conf
文件如下所示:

worker_processes 2;
events { worker_connections 512; }
http {


    upstream pb {

        server pearlbee:5000 weight=10 max_fails=3 fail_timeout=30s; 
        server pearlbee2:5000 weight=10 max_fails=3 fail_timeout=30s; 
    }



    server {

    listen *:80;
        location / {


        proxy_pass http://pb;


        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;


        #proxy_redirect     off;
        #proxy_set_header   Host $host;
        #proxy_set_header   X-Real-IP $remote_addr;
        #proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        #proxy_set_header   X-Forwarded-Host $server_name;

    }

 }

}
我的
docker compose
文件如下所示:

version: '2'
services:
  web:
    image: nginx
    ports:
      - "80:80"
    volumes:
      # here i pass my configuration to nginx 
       - ./nginx.conf:/etc/nginx/nginx.conf
    links:
      - pearlbee  
    volumes_from:
      - pearlbee  
  pearlbee:
    build: pearlbee
    command: carton exec  starman   bin/app.psgi
    #ports:
     #- "5000:5000"

    volumes:
      - ./config.yml:/config.yml  
    environment:
      - MYSQL_PASSWORD=secret

    depends_on:
      - mysql
  pearlbee2:
    build: pearlbee
    command: carton exec  starman   bin/app.psgi
    ports:
     - "5000"

    volumes:
      - ./config.yml:/config.yml  
    environment:
      - MYSQL_PASSWORD=secret

    depends_on:
      - mysql    
  mysql:
    image: mysql
    environment:
      - MYSQL_ROOT_PASSWORD=secret
      - MYSQL_USER=root    

“无法执行登录”是什么样子的?502错误?还有什么?看起来你的pearlbee和pearlbee2服务是一样的。最好只定义一个服务,然后使用docker compose scale pearlbee=2将其扩展到两个实例。这不是502错误,它只是将我返回到同一页面……正如programmerq所说,如果服务是同一服务器,则服务是相同的。如果您只运行一台服务器,请将端口号更改为其他值。请查看我创建的github存储库,以说明这一切是如何工作的:如果您尝试解析
pearlbee
,它应该返回与该服务关联的所有容器。