В настоящее время у меня есть виртуальная машина с 2 службами.Интерфейсный сервис httpd / apache2, который передает все запросы моим бэкэнд-сервисам.
Моя служба приема заявок прослушивает только 127.0.0.1:7878
.Это означает, что он доступен только через localhost.Вот почему я использую интерфейс, чтобы я мог использовать его для прокси моих запросов на 127.0.0.1:7878
Так что моя конфигурация apache2 на виртуальной машине выглядит так:
root@vm:/etc/apache2/sites-enabled# cat backend.conf
<VirtualHost *:443>
ServerName my.domain.com
ProxyPass / http://localhost:7878/
ProxyPassReverse / http://localhost:7878/
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/ssl_cert.crt
SSLCertificateKeyFile /etc/apache2/ssl/ssl_cert.key
</VirtualHost>
Теперь я хочучтобы докеризовать обе службы и развернуть их с помощью docker-compose
, я настроил свою бэкэнд-службу, например:
version: '3'
services:
backend:
build: backend/.
ports:
- "7878:7878"
И в моей папке backend/
есть все необходимые файлы для моей бэкэнд-службы, включаяDockerfile.Я могу успешно построить по образу Docker и могу запустить его успешно.Когда я выполняю в модуле, я могу успешно выполнить команды curl
в направлении 127.0.0.1:7878/some-end-point
Теперь мне нужно также докернизировать службу внешнего интерфейса.Это может быть apache или даже nginx.Но я не уверен, как оба контейнера будут взаимодействовать друг с другом, учитывая, что мои бэкэнд-сервисы ТОЛЬКО прослушивают 127.0.0.1
Если я расширю свой файл docker-compose, например:
version: '3'
services:
backend:
build: backend/.
ports:
- "7878:7878"
frontend:
build: frontend/.
ports:
- "80:80"
- "443:443"
Я считаю,он будет раскручивать свою собственную сеть, и мой бэкэнд-сервис не будет доступен, используя 127.0.0.1:7878
Так что в этом случае, какой подход лучше?Как мне использовать docker-compose для раскрутки разных контейнеров в той же сети, чтобы они разделяли 127.0.0.1
?