2016-06-03 2 views
0

У меня есть веб-приложение Java, работающее на Tomcat за Apache. Я хочу запустить новый контейнер Tomcat для каждого нового клиента, но все они за тем же Apache. Каждый клиент имеет свой собственный поддомен, а Apache проксирует их в нужном экземпляре Tomcat. Вот пример моей конфигурации Apache для одного клиента:Добавить новые контейнеры Tomcat за Apache с Docker

sites-enabled/app1.conf:

<VirtualHost *:80> 
    ServerName app1.domain.com 
    ProxyPass/ajp://tomcat1:8009/ 
    ProxyPassReverse/ajp://tomcat1:8009/ 
</VirtualHost> 

Затем я начинаю контейнер Apache с --link tomcat1 и все работает просто отлично.

Что я пытаюсь понять, как добавить динамические контейнеры Tomcat после того, как контейнер Apache уже запущен, и у Apache правильная ссылка на них.

Вопрос заключается в том, что даже при добавлении sites-enabled/app2.conf в контейнер Apache динамически, он не работает, потому что, когда контейнер Apache не имел --link tomcat2, когда он был запущен, поэтому он не знает, как выйти на новый сервер Tomcat контейнер.

У вас есть идеи, как я могу заставить это работать, кроме остановки контейнера Apache и перезапуска его с аргументом --link tomcat2?

+0

Я использую '' ProxyPass' и ProxyPassReverse', а не виртуальных хостов –

+0

см https://www.jamescoyle.net/how-to/116-simple-apache-reverse-proxy-example –

+0

@ScaryWombat я не знаете, понимаете ли вы, что я пытаюсь сделать, но ответ NetworkMeister решил мою проблему. –

ответ

0

Ссылки are considered legacy и have been replaced with networks. Присоедините apache и все контейнеры tomcat к одному и тому же bridge network, чтобы достичь прямой связи между ними, после чего вы можете создавать и удалять контейнеры tomcat по своему усмотрению.

+1

Спасибо, @NetworkMeister! Докерные сети были именно тем, что я искал! –