Рейтинг:1

Обратный прокси к локальному контейнеру

флаг cn

Мне нужно запустить Kafka на докере с веб-интерфейсом в определенном домене И ССЫЛКЕ, например:

http://somesite.com/kafka

Я использую этот docker-compose.yml.

версия: '3.3'
Сервисы:
  работник зоопарка:
    изображение: 'bitnami/zookeeper: последний'
    порты:
      - '2181:2181'
    среда:
      - ALLOW_ANONYMOUS_LOGIN=да
  кафка:
    изображение: 'bitnami/kafka: последний'
    порты:
      - '9092:9092'
    среда:
      - КАФКА_БРОКЕР_ИД=1
      - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://127.0.0.1:9092
      - KAFKA_CFG_ZOOKEEPER_CONNECT=зоозащитник:2181
      - ALLOW_PLAINTEXT_LISTENER=да
    зависит от:
      - работник зоопарка
  кафка-уи:
    изображение: 'provectuslabs/kafka-ui:latest'
    среда:
      - KAFKA_CLUSTERS_0_NAME=местный
      - KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=kafka:9092
      - KAFKA_CLUSTERS_0_ZOOKEEPER=смотритель зоопарка:2181
    зависит от:
      - кафка
    сети:
      - По умолчанию
    порты:
      - '9099:8080'

Когда я установил апач2 по прямому домену kafka.somesite.com, это работает.

<VirtualHost *:80>
  ServerName kafka.somesite.com
  ProxyPreserveHost On
  ProxyPass / http://127.0.0.1:9099/
  ProxyPassReverse / http://127.0.0.1:9099/
</VirtualHost>

Но когда я пытаюсь установить домен со ссылкой somesite.com/кафка, есть только пустой экран.

<VirtualHost *:80>
  ServerName somesite.com
  ProxyPreserveHost On
  ProxyPass /kafka http://127.0.0.1:9099/
  ProxyPassReverse /kafka http://127.0.0.1:9099/
</VirtualHost>

Как я могу сделать Кафку функциональной со ссылкой?

Спасибо.

флаг ar
Почему бы не использовать обратный прокси-контейнер Nginx?
флаг in
Возможно, Apache уже предоставляет контент или прокси для других служб.
Рейтинг:0
флаг in

Вы должны изменить две вещи. Во-первых, вам нужно настроить базовый URL-адрес контейнера kafka-ui, вы можете сделать это с помощью SERVER_SERVLET_CONTEXT_PATH переменная среды.

# ...
  кафка-уи:
    изображение: 'provectuslabs/kafka-ui:latest'
    среда:
      - KAFKA_CLUSTERS_0_NAME=местный
      - KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=kafka:9092
      - KAFKA_CLUSTERS_0_ZOOKEEPER=смотритель зоопарка:2181
      - SERVER_SERVLET_CONTEXT_PATH=/кафка
# ...

Если вы этого не сделаете, все URL-адреса, сгенерированные kafka-ui, будут начинаться с /, в результате чего CSS, JavaScript и тому подобное извлекаются из / вместо /кафка/.

Затем необходимо адаптировать ПроксиПасс директива для этого пути:

ПроксиПасс /кафка/ http://127.0.0.1:9099/кафка/
ProxyPassReverse /kafka/ http://127.0.0.1:9099/kafka/

С ПроксиПасс всегда следите за тем, чтобы ваши конечные косые черты совпадали, как указано в документации:

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

Рейтинг:0
флаг my

Имя_сервера по-прежнему должно быть сайт.com, потому что Apache по-прежнему ожидает, что это базовый URL-адрес. Когда URL-адрес somesite.com/кафка он должен перенаправить его на http://127.0.0.1:9099/

Итог, вторая конфигурация должна работать до тех пор, пока вы устанавливаете Имя сервера somesite.com

genderbee avatar
флаг cn
Нет, тоже не работает.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.