WildFly, ранее известный как JBoss Application Server, – полностью открытый сервер приложений, разработанный компанией Red Hat. Сервер написан на Java и поддерживает широкий спектр корпоративных технологий: CDI, EJB, JPA, JAX-RS, JSF, WebSocket и многие другие. Благодаря модульной архитектуре на основе JBoss Modules WildFly загружает только те компоненты, которые действительно нужны приложению, что положительно сказывается на потреблении памяти и времени запуска.
WildFly широко применяется как в enterprise-среде для настройки крупных корпоративных систем, так и в учебных и тестовых окружениях, благодаря открытому исходному коду и свободной лицензии Apache License 2.0.
В статье разберём, как установить WildFly на сервер, работающий под управлением CentOS Stream 10 и Rocky Linux 9.
Как установить WildFly на CentOS Stream 10 и Rocky Linux 9
Перед началом установки WildFly необходимо проинсталлировать инструменты, которые потребуются при работе с дистрибутивом, а именно wget – консольную утилиту для загрузки файлов из интернета, а также tar – стандартную утилиту для архивирования файлов:
$ sudo dnf install wget tar
Для работы WildFly требуется установленная Java-платформа (JVM). В качестве базовой среды выполнения рекомендуется использовать OpenJDK 21 LTS, официально поддерживаемый разработчиками WildFly:
$ sudo dnf install java-21-openjdk
По окончании инсталляции проверьте версию установленного продукта:
$ java -version
Из вывода команды видно, что в системе установлен OpenJDK версии 21.0.10 LTS.

Для установки актуальной версии WildFly перейдите на сайт продукта и скопируйте ссылку на загрузку tgz-архива.

После чего вернитесь в терминал и при помощи утилиты wget и скопированной ссылки загрузите на сервер архив дистрибутива WildFly:
$ wget https://github.com/wildfly/wildfly/releases/download/39.0.1.Final/wildfly-39.0.1.Final.tar.gz
Когда файл загрузится, разархивируйте его в каталог /opt:
$ sudo tar -xvf wildfly-39.0.1.Final.tar.gz -C /opt/
В нашем примере архив дистрибутива был распакован в каталог wildfly-39.0.1.Final. Чтобы упростить путь до файлов WildFly, рекомендуется переименовать данный каталог, убрав из его имени номер версии:
$ sudo mv /opt/wildfly-39.0.1.Final /opt/wildfly
На следующем шаге создайте системного пользователя, под именем которого будет работать сервер WildFly:
$ sudo useradd -r -s /sbin/nologin wildfly
В данном случае:
wildfly– имя создаваемого пользователя;- ключ
-rговорит системе, что создаваемый пользователь является системным, то есть у него нет домашнего каталога, он не предназначен для интерактивного входа и используется исключительно для запуска сервисов; - параметр
-s /sbin/nologinявным образом запрещает вход в систему под этим пользователем.
Чтобы запущенный от пользователя wildfly процесс WildFly имел полный доступ ко всем своим файлам, измените владельца и группу всех файлов и каталогов в /opt/wildfly на пользователя wildfly и группу wildfly:
$ sudo chown -R wildfly:wildfly /opt/wildfly
Как запустить WildFly в качестве системного сервиса
Чтобы WildFly вёл себя как полноценный серверный компонент операционной системы, необходимо настроить его для работы в качестве системного сервиса. Для этого создайте юнит-файл для новой службы:
$ sudo vi /etc/systemd/system/wildfly.service
В файл вставьте следующие строки:
[Unit]
Description=WildFly Application Server
After=network.target
[Service]
Type=simple
User=wildfly
Group=wildfly
ExecStart=/opt/wildfly/bin/standalone.sh -b=0.0.0.0 -bmanagement=0.0.0.0
ExecStop=/opt/wildfly/bin/jboss-cli.sh --connect command=:shutdown
Restart=on-failure
LimitNOFILE=102642
[Install]
WantedBy=multi-user.target
Закройте файл с сохранением изменений. После чего запустите следующую команду, которая инициирует процесс перечитывания системой всех юнит-файлов и обновление внутреннего состояния менеджера сервисов:
$ sudo systemctl daemon-reload
Затем установите новый сервис в автозагрузку с одновременным его стартом:
$ sudo systemctl enable --now wildfly
Чтобы убедиться в том, что служба работает без ошибок, выведите на экран её текущее состояние:
$ systemctl status wildfly
В выводе команды не должно быть сообщений о каких-либо ошибках.

Для создания пользователей в WildFly предназначен специальный скрипт. Данный скрипт является штатным и рекомендуемым способом управления учётными записями без ручного редактирования конфигурационных файлов. Для запуска скрипта выполните команду:
$ sudo /opt/wildfly/bin/add-user.sh
При запуске скрипта открывается интерактивный мастер, который последовательно запрашивает тип пользователя, имя и пароль. WildFly поддерживает два типа пользователей: Management User и Application User. Management User используется для доступа к административной консоли и управления сервером. В свою очередь, Application User предназначен для аутентификации приложений, развернутых на сервере.
Чтобы создать административную учётную запись, в интерактивном меню укажите пункт a. После чего придумайте и введите имя для создаваемого пользователя. На этапе выбора ролей подтвердите добавление пользователя в группу ManagementRealm, используемую для управления сервером.
WildFly использует порт 8080 для доступа к веб-приложениям, то есть ко всем WAR- или EAR-файлам, развёрнутым на сервере. Чтобы получить доступ к серверу через порт 8080, добавьте в брандмауэр соответствующее разрешающее правило:
$ sudo firewall-cmd --permanent --add-port=8080/tcp
Также откройте в брандмауэре доступ через порт 9990, который используется для подключения к административной консоли:
$ sudo firewall-cmd --permanent --add-port=9990/tcp
Для применения новых правил перезапустите брандмауэр:
$ sudo firewall-cmd --reload
После чего откройте браузер и проверьте доступность страницы WildFly. Для этого перейдите по ссылке вида http://X.X.X.X:8080, где вместо X.X.X.X укажите IP-адрес вашего сервера.

Также проверьте доступ к административной консоли. Для чего перейдите на http://X.X.X.X:9990, где X.X.X.X замените на IP-адрес сервера. При этом для подключения введите логин и пароль созданного ранее административного пользователя.

После аутентификации браузер откроет консоль управления WildFly.

