Назад | Перейти на главную страницу

Запуск нескольких доменов веб-сайтов на Wildfly

Предположим, у меня много сайтов с разными доменными именами, domain1.com, domain2.comи т.д. Я настроил правильную конфигурацию виртуальных хостов для этих сайтов в wildfly. Также имеются правильные записи DNS. Как направить на мой сервер запросы на эти домены wildfly?

  1. Я просто запускаю wildfly на порты 80 и 443? Что-то мне подсказывает, что это плохая идея, поскольку wildfly по умолчанию не работает на этих портах. Для работы wildfly на этих портах требуется привязка к этим портам как привилегированного пользователя, а затем переключение на непривилегированного пользователя. Сложность и хлопоты, связанные с этим, говорят о том, что это неправильно.

  2. Я бегу за nginx или apache2? Мое приложение динамически запускает веб-сайты и конфигурацию виртуального хоста. Могу я просто перенаправить все запросы wildfly и позволить ей разобраться с этим?

  3. ???

Вариант 1 возможен, но, как вы правильно предсказали, это не лучший подход. Чтобы работать на порте 80 или 443, вам нужен привилегированный пользователь, и вы напрямую открываете доступ к java-серверу, облегчая возникновение проблем.
Итак, запустите nginx, определите там домены и настройте upstream и proxy_pass для обратного прокси к вашим экземплярам wildfly. Вы получаете балансировку нагрузки бесплатно, вы можете обрабатывать ssl на nginx вместо wildfly, и всю настройку намного проще поддерживать и масштабировать. Вы можете настроить выделенный кластер wildfly для каждого домена и иметь отдельный upstream определение, или вы можете начать с одного экземпляра с отдельными веб-контекстами, например.

upstream jboss {
    server 192.168.33.11:8080;
}
server {
    listen 443;
    server_name example.com;

    location / {
         proxy_pass http://jboss/webapp1;
    }
} 
server {
    listen 443;
    server_name otherdomain.com;
    #pass the request to another .war dewployed on jboss
    location / {
         proxy_pass http://jboss/webapp2;
    }
} 

Вы можете найти больше информации на сайт nginx