У меня есть docker compose файл с 2 сервисами: joomla и phpmyadmin.
Мне нужен обратный прокси-сервер, который ведет себя так, как показано ниже:
path: / -> сервис joomla
path: / managedb -> phpmyadmin service
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://joomla;
}
location /managedb {
proxy_pass http://phpmyadmin;
}
}
Все работает хорошо, однако мне нужно добавить балансировку нагрузки для балансировки работы между 3 моими машинами в docker swarm.
Все они являются виртуальными машинами в одной локальной сети со стати c 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, потому что он мне нужен и в качестве обратного прокси-сервера, приведенный выше код явно не работает.
Так как я могу добавить балансировка нагрузки в этом сценарии?
Заранее спасибо!