Perl 无法调试Nginx负载平衡器
我正在尝试使用Nginx为在docker容器中运行的perl Dancer2应用程序设置负载平衡器。 我有一个问题,我不知道如何调试: 如果在我的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.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
,它应该返回与该服务关联的所有容器。