Docker контейнерная маршрутизация - PullRequest
0 голосов
/ 20 февраля 2019

Я пытаюсь использовать docker / docker-compose для реализации веб-сервера, где часть моих страниц обслуживается PHP, а часть - Java.Поэтому, когда я подключаюсь к localhost/php-service, меня перенаправляют в контейнер, на котором работает PHP-сервер, и подключение к localhost/java-service перенаправляет меня в контейнер, на котором работает веб-сервер Java.

Мой первый подход кэто, что может быть неправильно, заключалось в том, чтобы иметь отдельный контейнер, работающий под Apache, и использовать mod-rewrite, чтобы перенаправить меня в соответствующий контейнер.Прежде чем пытаться что-то необычное, я просто попытался перенаправить на свой контейнер сервера php, используя его ip:

#.htaccess
RewriteEngine on
RewriteRule .* http://192.168.128.6/ # <- IP address of container with webserver 

Это не работает, так как мой браузер просто переписывает URL-адрес на «192.168.128.6», а затем жалуется нанайти IP.По-видимому, механизм перезаписи просто указывает браузеру перейти в другое место, на самом деле он не пересылает запрос.Я мог бы назначить разные порты для каждого сервера и переписать механизм перезаписи на соответствующий порт, но я чувствую, что должен быть более элегантный способ решения этой проблемы.Я смотрел на использование iptables, но он также не кажется подходящим инструментом для работы ...

Заранее благодарен за любую помощь.

1 Ответ

0 голосов
/ 21 февраля 2019

Оказалось, что я искал mod_proxy, а не mod_rewrite, добавление этого в .htaccess решило проблему!

ProxyPass         /php-service  http://{PHP_CONTAINER_IP}/php-service
ProxyPassReverse  /php-service  http://{PHP_CONTAINER_IP}/php-service

ProxyPass         /java-service  http://{JAVA_CONTAINER_IP}/java-service
ProxyPassReverse  /java-service  http://{JAVA_CONTAINER_IP}/java-service

(замените {PHP_CONTAINER_IP} и {JAVA_CONTAINER_IP} фактическими IP-адресами)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...