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

Как установить WildFly с Nginx в качестве обратного прокси на Debian 10


Это руководство существует для этих версий ОС

  • Debian 11 (Bullseye)
  • Debian 10 (Buster)

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

  1. Требования
  2. Начало работы
  3. Установить Java
  4. Установить Wildfly
  5. Настройка Wildfly
  6. Настройка аутентификации WildFly
  7. Настройте WildFly для доступа из удаленной системы
  8. Доступ к Wildfly
  9. Настройка Nginx в качестве обратного прокси-сервера для Wildfly

WildFly — это бесплатная кроссплатформенная среда выполнения приложений с открытым исходным кодом, написанная на Java и разработанная Red Hat, которая позволяет разрабатывать отличные приложения в одной среде IDE. Он легкий, быстрый, гибкий и основан на подключаемых подсистемах. Он работает в операционных системах Windows и Linux и призван предоставить пользователям быструю и стабильную среду выполнения Java. Wildfly поставляется с богатым набором функций, включая быструю, настраиваемую среду выполнения, масштабируемость, унифицированную конфигурацию и управление, одновременную загрузку, быстрое связывание, управление доменами и многое другое.

В этом руководстве мы покажем вам, как установить Wildfly с Nginx в качестве обратного прокси-сервера в Debian 10.

Требования

  • Сервер под управлением Debian 10.
  • Для вашего сервера установлен корневой пароль.

Начиная

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

apt-get update -y
apt-get upgrade -y

После обновления сервера перезапустите его, чтобы изменения вступили в силу.

Установить Java

WildFly требует, чтобы на вашем сервере была установлена Java версии 8. По умолчанию Java 8 недоступна в репозитории по умолчанию Debian 10. Итак, вам нужно будет скачать Java 8 с их официального сайта.

После загрузки Java 8 извлеките исходный код Java в каталог /usr/lib/jvm с помощью следующей команды:

mkdir /usr/lib/jvm/
tar -zxvf jdk-8u221-linux-x64.tar.gz -C /usr/lib/jvm/

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

update-alternatives --config java

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

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                         Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java   1111      auto mode
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java   1111      manual mode
  2            /usr/lib/jvm/jdk1.8.0_221/bin/java            1         manual mode

Press  to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/lib/jvm/jdk1.8.0_221/bin/java to provide /usr/bin/java (java) in manual mode

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

java -version

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

java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)

Установить Wildfly

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

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

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

wget https://download.jboss.org/wildfly/17.0.1.Final/wildfly-17.0.1.Final.zip

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

unzip wildfly-17.0.1.Final.zip

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

cp -r wildfly-17.0.1.Final /opt/wildfly

Затем измените владельца каталога wildfly на пользователя wildfly, как показано ниже:

chown -RH wildfly:wildfly /opt/wildfly

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

Настройка Wildfly

Далее вам нужно будет скопировать необходимые файлы для настройки WildFly.

Сначала скопируйте файл конфигурации WildFly в каталог /etc/wildfly:

mkdir /etc/wildfly
cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.conf /etc/wildfly/

Затем скопируйте файл launch.sh в каталог /opt/wildfly/bin/ с помощью следующей команды:

cp /opt/wildfly/docs/contrib/scripts/systemd/launch.sh /opt/wildfly/bin/

Затем дайте разрешение на выполнение файлу launch.sh:

sh -c 'chmod +x /opt/wildfly/bin/*.sh'

Затем скопируйте файл системного модуля Wildfly в каталог /etc/systemd/system/:

cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.service /etc/systemd/system/

Затем перезагрузите демон 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: enabled)
   Active: active (running) since Tue 2019-09-10 00:19:27 EDT; 1s ago
 Main PID: 1142 (launch.sh)
    Tasks: 7 (limit: 1138)
   Memory: 24.7M
   CGroup: /system.slice/wildfly.service
           ??1142 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0
           ??1143 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0
           ??1200 java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -

Sep 10 00:19:27 debian systemd[1]: Started The WildFly Application Server.

Настройка аутентификации 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

Введите a и нажмите Enter, чтобы создать пользователя управления. В процессе создания пользователя вам нужно будет указать имя пользователя, пароль и имя группы, как показано ниже:

Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property files.
Username : wildflyadmin
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 : 
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 для доступа из удаленной системы

По умолчанию Wildfly доступен только из локальной системы. Итак, вам нужно будет настроить его для доступа из удаленной системы. Вы можете сделать это, отредактировав файл /etc/wildfly/wildfly.conf:

nano /etc/wildfly/wildfly.conf

Добавьте следующую строку в конец файла:

WILDFLY_CONSOLE_BIND=0.0.0.0

Сохраните и закройте файл, когда закончите. Затем откройте файл /opt/wildfly/bin/launch.sh, как показано ниже:

nano /opt/wildfly/bin/launch.sh

Измените файл, как показано ниже:

if [ "x$WILDFLY_HOME" = "x" ]; then
    WILDFLY_HOME="/opt/wildfly"
fi

if [[ "$1" == "domain" ]]; then
    $WILDFLY_HOME/bin/domain.sh -c $2 -b $3 -bmanagement $4
else
    $WILDFLY_HOME/bin/standalone.sh -c $2 -b $3 -bmanagement $4
fi

Сохраните и закройте файл. Затем откройте файл /etc/systemd/system/wildfly.service.

nano /etc/systemd/system/wildfly.service

Измените файл, как показано ниже:

[Unit]
Description=The WildFly Application Server
After=syslog.target network.target
Before=httpd.service

[Service]
Environment=LAUNCH_JBOSS_IN_BACKGROUND=1
EnvironmentFile=-/etc/wildfly/wildfly.conf
User=wildfly
LimitNOFILE=102642
PIDFile=/var/run/wildfly/wildfly.pid
ExecStart=/opt/wildfly/bin/launch.sh $WILDFLY_MODE $WILDFLY_CONFIG $WILDFLY_BIND $WILDFLY_CONSOLE_BIND
StandardOutput=null

[Install]
WantedBy=multi-user.target

Сохраните файл. Затем создайте каталог /var/run/wildfly и установите правильные разрешения.

mkdir /var/run/wildfly/
chown wildfly:wildfly /var/run/wildfly/

Наконец, перезагрузите демон systemd и перезапустите службу Wildfly, чтобы применить изменения:

systemctl daemon-reload
systemctl restart wildfly

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

Доступ к Wildfly

Теперь Wildfly установлен и настроен для доступа из удаленной системы. По умолчанию консоль управления Wildfly прослушивает порт 9990. Вы можете получить к ней доступ, посетив URL-адрес http://192.168.0.4:9990. Вы будете перенаправлены на следующую страницу:

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

Вы также можете получить доступ к приложению Wildfly, посетив URL-адрес http://192.168.0.4:8080. Вы должны увидеть следующую страницу:

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

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

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

apt-get install nginx -y

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

nano /etc/nginx/sites-available/wildfly.conf

Добавьте следующие строки:

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

server {
  listen          80;
  server_name     192.168.0.4;

  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 и перезапустите Nginx с помощью следующей команды:

ln -s /etc/nginx/sites-available/wildfly.conf /etc/nginx/sites-enabled/
systemctl restart nginx

Теперь вы можете получить доступ к приложению Wildfly, не указывая порт 8080.

Вот и все. Вы успешно установили и настроили Wildfly с Nginx в качестве обратного прокси-сервера в Debian 10. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.