我有一个简单的 haproxy.cfg,如下所示:
frontend http
bind *:8080
mode http
use_backend all
backend all
mode http
server s1 ws:8080
现在我有一个 docker-compose 文件,如下所示:
version : '3.9'
services:
lb:
image: haproxy
ports:
- "8080:8080"
volumes:
- ./haproxy:/usr/local/etc/haproxy
ws:
image: myserver
这工作正常,但现在我想使用副本将我的服务器 (ws) 实例扩展到 4 个。
我可以做到这一点,提供这个 docker-compose 文件:
version : '3.9'
services:
lb:
image: haproxy
ports:
- "8080:8080"
volumes:
- ./haproxy:/usr/local/etc/haproxy
ws:
image: myserver
deploy:
mode: replicated
replicas: 4
Calling docker-compose up
给了我这个:
Recreating test_server_ws_1 ... done
Recreating test_server_ws_2 ... done
Recreating test_server_ws_3 ... done
Recreating test_server_ws_4 ... done
Recreating test_lb_1 ... done
但是我现在如何在我的 haproxy.cfg 中引用这 4 个副本?使用除ws:8080
会给我
lb_1 | [ALERT] (1) : parsing [/usr/local/etc/haproxy/haproxy.cfg:11] : 'server s1' : could not resolve address 'ws_1'.
只需在配置中使用 ws 作为地址(像以前一样)将始终转发到 ws_4。
如何正确配置 haproxy 以转发到 ws_1、ws_2、ws_3 和 ws_4 ?