Как настроить субдомены с Payara и виртуальными серверами? - PullRequest
0 голосов
/ 30 апреля 2018

Я борюсь здесь с чем-то, что может быть легко сделать, но я не нашел правильного решения, поэтому я надеюсь, что вы можете помочь мне, пожалуйста.

Фон

Мы разрабатываем приложение, которое состоит из 4 различных веб-проектов Java.

  1. AppA
  2. AppB
  3. APPC
  4. WebService

Все эти приложения должны быть доступны из 4 разных поддоменов mydomain.com :

  1. a.mydomain.com
  2. b.mydomain.com
  3. c.mydomain.com
  4. api.mydomain.com

Технология

Сервер приложений: сервер Payara 4 (почти такой же, как Glassfish 4).

Сервер Payara работает внутри контейнера Docker, который, в свою очередь, работает внутри экземпляра Amazon EC2.

Я использовал Amazon Route 53 в следующем сценарии:

Что я уже успешно сделал

Это было сделано для другого проекта, в котором было только 1 приложение, доступ к которому осуществлялся с субдомена otherdomainiown.com .

Это прекрасно работает, потому что записи DNS провайдера домена ( iPage ) просто указывают на мои записи Amazon Route 53 сконфигурированной мной размещенной зоны. Эта размещенная зона имеет запись A, которая указывает на фиксированный IP-адрес моего экземпляра Amazon EC2. Затем Docker выставляет сервер Payara через порт 80, который сопоставлен с портом 8080, который Payara использует по умолчанию для обслуживания своих приложений. enter image description here

Проблема

Теперь я столкнулся с похожим сценарием. Разница в том, что у меня есть 4 разных приложения, которые должны быть доступны для 4 разных поддоменов.

Я попробовал с Виртуальными серверами (виртуальными хостами) без удачи, я не знаком с этим, но я думаю, что это может быть возможным решением.

Я подумывал об использовании корзин Amazon S3 для перенаправления, но не думаю, что это то, что мне нужно.

На изображении это должен быть последний сценарий, хотя я просто нарисую 2 поддомена для простоты:

enter image description here

  • Должен ли я использовать сопоставления Docker для решения этой проблемы?
  • Должен ли я использовать виртуальные серверы?
  • Должен ли я купить 4 разных машины? (это решит все это за несколько секунд, но покупка большего количества экземпляров не вариант)
  • Должен ли я использовать Docker-контейнер для каждого приложения?

Как видите, я немного растерялся, поэтому было бы здорово, если бы вы указали мне правильное направление.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Вам просто нужно создать виртуальный сервер для каждого субдомена и установить поддомен в поле «Хосты». Затем вам необходимо использовать все 4 приложения и выбрать нужный виртуальный сервер в поле «Виртуальные серверы». Блог, на который ссылается @Mike, поможет вам: https://blog.payara.fish/virtual-servers-in-payara-server

Все виртуальные серверы будут прослушивать один и тот же IP-адрес, но Payara Server будет считывать домен из входящих HTTP-запросов и перенаправит запрос на правильный виртуальный сервер.

Однако это рекомендуется только для очень маленьких приложений. Более крупные приложения следует развертывать отдельно на разных экземплярах Payara Server, работающих на разных портах или разных компьютерах. Если вы используете Docker, вы можете запустить 4 экземпляра в Docker и отобразить их на разные порты. Тогда вам потребуется прокси-сервер (Apache Httpd, Nginx,) для маршрутизации запросов на правильные экземпляры (порты) Payara в соответствии с именем домена в запросах.

0 голосов
/ 01 мая 2018

Для чего вы используете Route 53? Какую выгоду вы получите от этого сценария?

На веб-сайте Payara есть запись в блоге, в которой дается обзор использования виртуальных серверов в Payara Server, но здесь немного углубленно, чтобы цитировать ответ здесь .

Ключевым моментом является то, что вам все еще нужно настроить входящий трафик на , поступающий в разные субдомены. Если весь ваш трафик поступает на тот же IP-адрес, что и Route53, то будет очень сложно определить, какой трафик должен идти к какой конечной точке.

Обычный способ сделать это - использовать балансировщик нагрузки или прокси, где у вас есть Route53 на диаграмме. Amazon ELB сможет выполнять нужные вам перенаправления. Более дешевый вариант (хотя это потребовало бы большего управления) - использовать что-то вроде Apache httpd или Nginx для пересылки запросов на сервер Payara.

...