docker - docker-swarm + nginx 负载平衡:我需要在 .conf 中设置上游吗?
问题描述
我对docker-swarm和nginx相当陌生,我当前的设置是一个基本的flask/gunicorn应用程序,使用nginx作为部署在docker-swarm上的反向代理,现在它运行成功,当我查询它返回的一个swarm节点时每次群中不同主机的主机 ID,我认为这是负载平衡发生的。
虽然我不知道那是 docker swarm 还是 nginx。
编辑:我正在跨群中的主机扩展服务。
我已经看到了设置上游变量(我没有)并在其中手动添加每个主机 ip 的各种示例,我的问题是我是否需要包含它以使负载平衡正常工作/我如何测试它是否正确平衡?
这是我的 nginx dockerfile 和 docker-compose.yml
worker_processes 3;
events { }
http {
keepalive_timeout 360s;
server {
listen 8080;
server_name app;
charset utf-8;
location / {
proxy_pass http://app:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
version: '3'
services:
app:
image: <repouser>/<repo>:flask
deploy:
replicas: 1
restart_policy:
condition: on-failure
networks:
- apinetwork
expose:
- "5000"
ports:
- "5000:5000"
nginx:
image: <repouser>/<repo>:nginx
deploy:
replicas: 1
restart_policy:
condition: on-failure
networks:
- apinetwork
expose:
- "80"
ports:
- "80:8080"
networks:
apinetwork:
driver: overlay
谢谢你的帮助。
解决方案
推荐阅读
- webpack - 刚刚生成的 jhipster 应用程序 - 无法读取未定义的属性“替换”
- dart - Flutter Reloading List with Streams & RxDart
- elasticsearch - 由管道分隔的数据的 Grok 模式,其中包含空格和可选值
- javascript - 加载 xml 文件并在列表框中显示
- vb.net - 通过 VB.net 应用程序控制 Web 浏览器
- php - 如何访问函数上下文中的对象?
- python - 有什么方法可以使用套接字相对快速地在 UDP 上发送大量数据(大约 10,000 字节)?
- r - 用于查找 nxn 矩阵行列式的 R 代码不适用于 n>=4
- excel - EXCEL 无法取消隐藏工作表
- java - 无法使用 URLClassLoader 和反射转换为接口类