Поиск по сайту:

Установите сервер приложений Java WildFly с обратным прокси-сервером Nginx на Rocky Linux 8


На этой странице

  1. Предпосылки
  2. Установить Java
  3. Установить Wildfly
  4. Добавить пользователя-администратора Wildfly
  5. Настройка брандмауэра и SELinux
  6. Доступ к консоли администратора Wildfly
  7. Настройка Nginx в качестве обратного прокси-сервера для Wildfly
  8. Заключение

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

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

Предпосылки

  • Сервер под управлением Rocky Linux 8/AlmaLinux 8 или centOS 8.
  • Пароль root настраивается на сервере.

Установить Java

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

dnf install java-11-openjdk-devel -y

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

java --version

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

openjdk 11.0.8 2020-07-14 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.8+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.8+10-LTS, mixed mode, sharing)

Установить Wildfly

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

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

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

wget https://download.jboss.org/wildfly/20.0.1.Final/wildfly-20.0.1.Final.tar.gz

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

tar -xvzf /root/wildfly-20.0.1.Final.tar.gz

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

mv wildfly-20.0.1.Final /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 status wildfly

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

? wildfly.service - The WildFly Application Server
   Loaded: loaded (/etc/systemd/system/wildfly.service; disabled; vendor preset: disabled)
   Active: active (running) since Sun 2020-09-13 05:57:22 EDT; 16s ago
 Main PID: 31834 (launch.sh)
    Tasks: 123 (limit: 12527)
   Memory: 304.1M
   CGroup: /system.slice/wildfly.service
           ??31834 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0
           ??31835 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0
           ??31925 java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=tru>

Sep 13 05:57:22 centos8 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=31925,fd=478)) uid:989 ino:59014 sk:9

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

ss -tunelp | grep 9990

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

tcp    LISTEN   0        50              127.0.0.1:9990           0.0.0.0:*      users:(("java",pid=31925,fd=138)) uid:989 ino:59017 sk:7

Добавить пользователя-администратора Wildfly

Чтобы получить доступ к консоли администрирования 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           

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

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

Укажите желаемое имя пользователя и нажмите 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 : 
Re-enter Password : 

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

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
Added user 'wildflyadmin' to file '/opt/wildfly/standalone/configuration/mgmt-users.properties'
Added user 'wildflyadmin' to file '/opt/wildfly/domain/configuration/mgmt-users.properties'
Added user 'wildflyadmin' with groups  to file '/opt/wildfly/standalone/configuration/mgmt-groups.properties'
Added user 'wildflyadmin' with groups  to file '/opt/wildfly/domain/configuration/mgmt-groups.properties'
Is this new user going to be used for one AS process to connect to another AS process? 
e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server EJB calls.
yes/no? yes
To represent the user add the following to the server-identities definition 

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

Настройте брандмауэр и SELinux

По умолчанию SELinux включен в Rocky Linux 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 и внести некоторые изменения для внешнего доступа.

nano /opt/wildfly/bin/launch.sh

Найдите следующую строку:

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

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

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

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

systemctl restart wildfly

Теперь откройте веб-браузер и войдите в консоль администратора Wildfly, используя URL-адрес http://your-server-ip:9990. Вам будет предложено ввести имя пользователя и пароль, как показано ниже:

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

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

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

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

dnf install nginx -y

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

nano /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     your-server-ip;

  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; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/nginx.service.d
           ??php-fpm.conf
   Active: active (running) since Sun 2020-09-13 06:03:37 EDT; 5s ago
  Process: 1775 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 1773 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 1771 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 1776 (nginx)
    Tasks: 3 (limit: 12527)
   Memory: 5.4M
   CGroup: /system.slice/nginx.service
           ??1776 nginx: master process /usr/sbin/nginx
           ??1777 nginx: worker process
           ??1778 nginx: worker process

Sep 13 06:03:37 centos8 systemd[1]: Stopped The nginx HTTP and reverse proxy server.
Sep 13 06:03:37 centos8 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Sep 13 06:03:37 centos8 nginx[1773]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Sep 13 06:03:37 centos8 nginx[1773]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Sep 13 06:03:37 centos8 systemd[1]: Started The nginx HTTP and reverse proxy server.

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

Заключение

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

Статьи по данной тематике: