WildFly — это кроссплатформенный сервер приложений с открытым исходным кодом, разработанный RedHat. Он написан на Java и используется для разработки Java-приложений. Он простой, гибкий, легкий и основан на подключаемых подсистемах, которые можно добавлять или удалять в соответствии с вашими требованиями. Он поставляется с простой и удобной панелью инструментов и призван предоставить пользователям быструю и стабильную среду выполнения Java.

В этом руководстве мы покажем вам, как установить Wildfly с Nginx в качестве обратного прокси-сервера в CentOS 8. Те же шаги будут работать и в AlmaLinux 8 и Rocky Linux 8.

Реквезиты

  • Сервер под управлением Rocky Linux 8 / AlmaLinux 8 или centOS 8.
  • Есть доступ к административной учетной записи на сервере.

Установка Java.

Wildfly — это приложение на основе Java, поэтому на вашем сервере должна быть установлено ​​Java. Если не установлено, вы можете установить его с помощью следующей команды:

# dnf install java-11-openjdk-devel -y

После установки Java вы можете проверить установленную версию Java с помощью следующей команды:

# java --version

Вы должны получить примерно следующий результат:

openjdk 11.0.15 2022-04-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.15+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.15+10-LTS, mixed mode, sharing)

Установка Wildfly.

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

# groupadd --system wildfly
# useradd -s /sbin/nologin --system -d /opt/wildfly -g wildfly wildfly

Далее вам нужно будет загрузить последнюю версию Wildfly с их официального сайта. На момент написания этого руководства последняя доступная версия Wildfly — 27.0.0.Beta1. Вы можете скачать его с помощью следующей команды:

# wget https://github.com/wildfly/wildfly/releases/download/27.0.0.Beta1/wildfly-27.0.0.Beta1.zip

После завершения загрузки извлеките загруженный файл с помощью следующей команды:

# tar -xvzf wildfly-27.0.0.Beta1.tar.gz

Затем скопируйте извлеченный каталог в /opt с помощью следующей команды:

# mv wildfly-27.0.0.Beta1 /opt/wildfly

Затем создайте каталог для хранения файлов конфигурации Wildfly:

# mkdir /etc/wildfly

Затем скопируйте все необходимые файлы в нужное место с помощью следующей команды:

# cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.conf /etc/wildfly/
# cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.service /etc/systemd/system/
# cp /opt/wildfly/docs/contrib/scripts/systemd/launch.sh /opt//wildfly/bin/

Затем укажите права собственности и права доступа к каталогу и файлам wildfly с помощью следующей команды:

# chmod +x /opt/wildfly/bin/launch.sh
# chown -R wildfly:wildfly /opt/wildfly
# chmod -R +x /opt/wildfly/

Затем перезагрузите демон systemd с помощью следующей команды:

# systemctl daemon-reload

Затем запустите службу Wildfly и включите ее запуск при загрузке с помощью следующей команды:

# systemctl start wildfly
# systemctl enable wildfly

Теперь вы можете проверить статус службы Wildfly с помощью следующей команды:

# systemctl enable wildfly

Вы должны получить следующий результат:

● wildfly.service - The WildFly Application Server
   Loaded: loaded (/etc/systemd/system/wildfly.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-10-08 11:43:48 MSK; 2min 29s ago
 Main PID: 205282 (launch.sh)
    Tasks: 40 (limit: 4703)
   Memory: 327.3M
   CGroup: /system.slice/wildfly.service
           ├─205282 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0
           ├─205283 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0
           └─205376 java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.bytema>

Oct 08 11:43:48 computer systemd[1]: Started The WildFly Application Server.

На данный момент Wildfly установлен и запущен. По умолчанию сервер приложений wildfly прослушивает порт 8080. Вы можете проверить это с помощью следующей команды:

# ss -tunelp | grep 8080

Вы должны получить следующий результат:

tcp   LISTEN 0      128          0.0.0.0:8080       0.0.0.0:*    users:(("java",pid=205376,fd=501)) uid:989 ino:1424952 sk:7 <->  

Консоль администратора Wildfly прослушивает порт 9990. Вы можете проверить это с помощью следующей команды:

# ss -tunelp | grep 9990

Вы должны получить следующий результат:

tcp   LISTEN 0      50         127.0.0.1:9990       0.0.0.0:*    users:(("java",pid=205376,fd=508)) uid:989 ino:1424955 sk:5 <->  

Добавляем администратора Wildfly.

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

# /opt/wildfly/bin/add-user.sh

Вам будет предложено выбрать тип пользователя, которого вы хотите добавить, как показано ниже:

What type of user do you wish to add?
 a) Management User (mgmt-users.properties)
 b) Application User (application-users.properties)
(a): a

Введите «a» для пользователя управления и нажмите Enter. Вы должны увидеть следующий вывод:

Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property files.
Username : user

Укажите желаемое имя пользователя и нажмите Enter. Вы должны увидеть следующий вывод:

Password recommendations are listed below. To modify these restrictions edit the add-user.properties configuration file.
 - The password should be different from the username
 - The password should not be one of the following restricted values {root, admin, administrator}
 - The password should contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), 1 non-alphanumeric symbol(s)
Password :

Введите свой пароль и нажмите Enter. Вы должны увидеть следующий вывод:

Password recommendations are listed below. To modify these restrictions edit the add-user.properties configuration file.
 - The password should be different from the username
 - The password should not be one of the following restricted values {root, admin, administrator}
 - The password should contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), 1 non-alphanumeric symbol(s)
Password :
WFLYDM0099: Password should have at least 8 characters!
Are you sure you want to use the password entered yes/no? yes
Re-enter Password :
What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[  ]:
About to add user 'wildflyadmin' for realm 'ManagementRealm'
Is this correct yes/no? yes

На этом этапе создан ваш пользователь управления Wildfly. Вы можете перейти к следующему шагу.

Настраиваем брандмауэр и SELinux.

По умолчанию SELinux включен в CentOS 8. Поэтому вам нужно настроить SELinux для Wildfly. Вы можете сделать это с помощью следующей команды:

# semanage fcontext -a -t bin_t "/opt/wildfly/bin(/.*)?"
# restorecon -Rv /opt/wildfly/bin/
# setsebool -P httpd_can_network_connect 1

Далее вам нужно будет разрешить порты 8080, 9990 и 80 через брандмауэр. Вы можете сделать это с помощью следующей команды:

# firewall-cmd --permanent --add-port=8080/tcp
# firewall-cmd --permanent --add-port=9990/tcp
# firewall-cmd --permanent --add-port=80/tcp

Затем перезагрузите firewalld, чтобы применить изменения.

# firewall-cmd --reload

Как только вы закончите, вы можете перейти к следующему шагу.

Доступ к консоли администратора Wildfly.

По умолчанию консоль администратора Wildfly доступна только с локального хоста. Вам нужно будет отредактировать /opt/wildfly/bin/launch.sh и внести некоторые изменения для внешнего доступа. Открываем этот файл, удобным для вас редактором. И находим следующую строку.:

$WILDFLY_HOME/bin/standalone.sh -c $2 -b $3

И заменяем ее следующей строкой:

$WILDFLY_HOME/bin/standalone.sh -c $2 -b $3 -bamanagment=0.0.0.0

Сохраните и закройте файл, затем перезапустите службу Wildfly, чтобы изменения вступили в силу.

# systemctl restart wildfly

Теперь откройте веб-браузер и войдите в консоль администратора Wildfly, используя URL-адрес http://ip-server:9990. Вам будет предложено ввести имя пользователя и пароль. Введите имя пользователя и пароль администратора Wildfly и нажмите кнопку «Войти». После входа в систему вы должны увидеть панель администратора Wildfly на следующем экране:

wildfly admin

Настраиваем Nginx в качестве обратного прокси для Wildfly.

По умолчанию приложение Wildfly доступно через порт 8080. Поэтому рекомендуется настроить Nginx в качестве обратного прокси-сервера, чтобы к нему можно было получить доступ через порт 80.

Сначала установите веб-сервер Nginx с помощью следующей команды;

# dnf install nginx -y

После установки создайте новый файл конфигурации /etc/nginx/conf.d/wildfly.conf, любым удобным для вас текстовым редактором и добавьте в него следующие строки:

upstream wildfly {
  server 127.0.0.1:8080 weight=100 max_fails=5 fail_timeout=5;
}

server {
  listen       80;
  server_name  dcitst-x55010;

  location / {
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://wildfly/;
  }
}

Сохраните и закройте файл, затем проверьте Nginx на наличие ошибок конфигурации с помощью следующей команды:

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Затем запустите Nginx и включите его запуск при перезагрузке системы с помощью следующей команды:

# systemctl start nginx
# systemctl enable nginx

Вы также можете проверить статус службы Nginx с помощью следующей команды:

# systemctl status nginx

Вы должны получить следующий результат:

● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-10-08 15:18:41 MSK; 1min 21s ago
 Main PID: 9287 (nginx)
    Tasks: 2 (limit: 4685)
   Memory: 8.2M
   CGroup: /system.slice/nginx.service
           ├─9287 nginx: master process /usr/sbin/nginx
           └─9288 nginx: worker process

Oct 08 15:18:41 computer systemd[1]: Starting The nginx HTTP and reverse proxy server...
Oct 08 15:18:41 computer nginx[9283]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Oct 08 15:18:41 computer nginx[9283]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Oct 08 15:18:41 computer systemd[1]: Started The nginx HTTP and reverse proxy server.

На этом этапе Nginx установлен и настроен для обслуживания вашего приложения Wildfly. Теперь вы можете получить доступ к приложению Wildfly, используя URL-адрес http://server-ip. Вы должны увидеть следующий экран:

Wildfly welcome

Заключение.

В этом руководстве мы узнали, как установить Wildfly и включить удаленный доступ в CentOS 8 (а так же подойдет для ALma Linux8 и Rocky Linux 8). Мы также настроили Nginx в качестве обратного прокси-сервера для доступа к Wildfly через порт 80. Теперь вы можете начать создавать приложение Java и управлять им из Консоли администратора Widlfly.

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

Добавить комментарий