【发布时间】:2020-01-19 17:02:13
【问题描述】:
我有一个包含 2 个服务的 docker compose 文件:joomla 和 phpmyadmin。
我需要一个反向代理,其行为如下:
路径:/ --> joomla 服务
路径:/managedb --> phpmyadmin 服务
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://joomla;
}
location /managedb {
proxy_pass http://phpmyadmin;
}
}
一切正常,但是我需要添加负载平衡来平衡 docker swarm 中的 3 台机器之间的工作。
它们都是同一 LAN 上的虚拟机,静态 IP 为 192.168.75.11/12/13。
Nginx 添加负载均衡的方式应该如下:
upstream joomla_app {
server 192.168.75.11;
server 192.168.75.12;
server 192.168.75.13;
}
upstream phpmyadmin_app {
server 192.168.75.11;
server 192.168.75.12;
server 192.168.75.13;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://joomla_app;
}
location /managedb {
proxy_pass http://phpmyadmin_app;
}
}
但是,由于唯一暴露的端口是 Ngxinx 80 端口,因为我也需要它作为反向代理,所以上面的代码显然不起作用。
那么在这种情况下如何添加负载均衡呢?
提前谢谢你!
【问题讨论】:
标签: docker nginx docker-swarm