У меня есть сервер Ubuntu в AWS, на котором запущено несколько серверов приложений - Wildfly обслуживает несколько страниц, а два Tomcats запускают отдельное приложение.

Я пытаюсь заставить работать поддомены.

У меня настроен DNS, чтобы указать subdomain1.example.com, subdomain2.example.com. Это нормально работает.

Wildfly прослушивает порт 80 (я думаю?), Tomcats прослушивают 8080 и 8090. Цель состоит в том, чтобы www.example.com перешел на Wildfly, subdomain1.example.com - на Tomcat: 8080 и subdomain2.example. com перейти к Tomcat: 8090

Я нашел множество сообщений, в которых говорится о настройке виртуальных хостов в Apache, которые должны решить мою проблему. Но меня все время отправляют в кроличьи норы. Некоторые предлагают добавить в /opt/bitnami/apache2/bin/httpd.config, а некоторые - в /opt/bitnami/apache2/sites-available/subdomain1.example.com.conf

Моя первая проблема: я не думаю, что Apache вообще запущен. У меня создалось впечатление, что Apache встроен в Wildfly, но когда я выполняю:

service apache2 status

Я получил:

apache2.service Загружен: не найден (Причина: нет такого файла или каталога) Активен: неактивен (мертв)

Запуск sudo service --status-all также не показывает, что он запущен, поэтому я думаю, что это не так. Кажется, он установлен (стек Bitnami) в /opt/bitnami/apache2

Должен ли я включать Apache как часть Wildfly (и как его включить)? Если да, то я предполагаю, что Wildfly больше не получает трафик.

Во-вторых, мое исследование показало, что мне нужно включить proxy и proxy_http с помощью a2enmod и a2ensite, но у меня их нет. Исследования показывают, что все Ubuntu будут иметь эти скрипты ... будут ли они созданы, если я включу Apache?

Извините за все вопросы новичков .... Я разработчик без DevOps. Похоже, это было бы настолько распространено, что его бы запекли, или было бы определенное решение, которого мне, вероятно, не хватает.

0
danielc 17 Мар 2018 в 05:50

1 ответ

Лучший ответ

Для тех, кто ищет что-то подобное, вот решение, которое сработало для меня.

Мой сервер - это образ AMI Wildfly-Apache2-MySQL на AWS. Мне не нужно было использовать ни a2enmod, ни a2ensite, как предполагало мое исследование. Кажется, что многие из этих модулей уже включены в предварительно созданный образ.

ОБРАТИТЕ ВНИМАНИЕ, что эти инструкции относятся к BITNAMI AWI, КОНФИГУРАЦИЯ ВАШЕГО ВКУСА МОЖЕТ БЫТЬ НЕМНОГО ОТЛИЧАЮЩЕЙСЯ

Чтобы поддомен указывал на простой текстовый сайт Apache (yada.example.com):

  • Создайте каталог в ~ / stack / apache2 / htdocs под названием yada
  • Добавьте запись в файл конфигурации виртуальных хостов (sudo nano /opt/bitnami/apache2/conf/extra/httpd-vhosts.conf)
<VirtualHost *:80>
    ServerAdmin info@example.com
    DocumentRoot "/opt/bitnami/apache2/htdocs/yada"
    ServerName yada.example.com
    ErrorLog "logs/yada-subdomain-error-log"
    CustomLog "logs/yada-subdomain-access-log" common
</VirtualHost>
  • Измените файл конфигурации Apache, чтобы включить виртуальные хосты. (sudo nano /opt/bitnami/apache2/conf/httpd.conf):
...snip...

# Supplemental configuration
#
# The configuration files in the conf/extra/ directory can be
# included to add extra features or to modify the default configuration of
# the server, or you may simply copy their contents here and change as
# necessary.
 
...snip...
 
# Virtual hosts
Include conf/extra/httpd-vhosts.conf

# ADDED THE ABOVE LINE

...snip...
  • Перезапустите Apache (sudo /opt/bitnami/ctlscript.sh restart apache)

Чтобы он указывал на сервер Tomcat, добавьте это в httpd-vhosts.conf:

<VirtualHost *:80>
    ServerAdmin info@example.com
    ServerName yada.example.com
    ProxyPreserveHost On
 
 
    # setup the proxy
    <Proxy *>
        Order allow,deny
        Allow from all
    </Proxy>
    ProxyPass / http://localhost:8090/
    ProxyPassReverse / http://localhost:8090/
</VirtualHost>

Ваш порт может отличаться.

К вашему сведению, я нашел это полезным: https://docs.bitnami.com/virtual-machine/components/apache/#how-to-configure-your-web-application-to-use-a-virtual-host

Удачи и благодарю @stdunbar за его руководство.

1
danielc 23 Мар 2018 в 15:38