Как установить сервер приложений WildFly Java с Nginx на Ubuntu 22.04

Wildfly — это простая, легкая и гибкая среда выполнения приложений, используемая для создания Java-приложений. Она написана на языке Java и может работать на операционных системах Linux, macOS и Windows. Это корпоративный и полнофункциональный сервер приложений, который предоставляет все необходимые функции для запуска веб-приложений на Java.

Особенности

  • Бесплатно и с открытым исходным кодом
  • Модульная и легкая.
  • Экономия ресурсов благодаря эффективному управлению.
  • Экономия времени за счет ускорения разработки.

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

Предварительные условия

  • Сервер под управлением Ubuntu 22.04.
  • На IP-адрес вашего сервера указывает действительное доменное имя.
  • На вашем сервере настроен пароль root.

Обновление системы

Сначала вам нужно обновить все системные пакеты до обновленной версии. Вы можете обновить их, выполнив следующую команду.

apt update -y
apt upgrade -y

После того как все пакеты будут обновлены, можно переходить к следующему шагу.

Установите Java JDK

Wildfly — это приложение на основе Java. Поэтому вам необходимо установить Java на ваш сервер. Вы можете установить Java JDK с помощью следующей команды.

apt install default-jdk -y

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

java --version

Вы должны увидеть версию Java в следующем выводе.

openjdk 11.0.17 2022-10-18
OpenJDK Runtime Environment (build 11.0.17+8-post-Ubuntu-1ubuntu222.04)
OpenJDK 64-Bit Server VM (build 11.0.17+8-post-Ubuntu-1ubuntu222.04, mixed mode, sharing)

Скачайте и установите Wildfly

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

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

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

wget https://github.com/wildfly/wildfly/releases/download/26.1.3.Final/wildfly-26.1.3.Final.zip

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

unzip wildfly-26.1.3.Final.zip

Затем переместите распакованный каталог Wildfly в каталог /opt.

mv wildfly-26.1.3.Final /opt/wildfly

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

chown -RH wildfly: /opt/wildfly

После этого можно приступать к настройке Wildfly.

Настройка Wildfly

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

mkdir -p /etc/wildfly

Затем скопируйте файл конфигурации Wildfly в каталог /etc/wildfly.

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

Далее скопируйте файл службы Wildfly в каталог systemd.

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

Далее скопируйте файл Wildfly launch.sh в каталог /opt/wildfly/bin/.

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

Затем установите разрешение на выполнение для файла сценария.

chmod +x /opt/wildfly/bin/*.sh

Затем перезагрузите демон 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 Wed 2023-02-15 09:34:24 UTC; 4s ago
   Main PID: 20425 (launch.sh)
      Tasks: 61 (limit: 4579)
     Memory: 111.6M
        CPU: 6.919s
     CGroup: /system.slice/wildfly.service
             ??20425 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0
             ??20426 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0
             ??20534 java "-D[Standalone]" -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stac>

Feb 15 09:34:24 ubuntu2204 systemd[1]: Started The WildFly Application Server.

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

ss -antpl | grep -i java

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

LISTEN 0      4096         0.0.0.0:8443      0.0.0.0:*    users:(("java",pid=20534,fd=498))                                                                
LISTEN 0      50         127.0.0.1:9990      0.0.0.0:*    users:(("java",pid=20534,fd=497))                                                                
LISTEN 0      4096         0.0.0.0:8080      0.0.0.0:*    users:(("java",pid=20534,fd=495))                                                                

Настройка консоли администратора Wildfly

По умолчанию консоль администратора Wildfly отключена. Чтобы получить доступ к Wildfly через веб-браузер, вам нужно включить ее.

Сначала отредактируйте конфигурационный файл Wildfly с помощью следующей команды.

nano /etc/wildfly/wildfly.conf

Измените следующие строки.

WILDFLY_BIND=127.0.0.1
WILDFLY_CONSOLE_BIND=127.0.0.1

Сохраните и закройте файл, когда закончите. Затем отредактируйте файл launch.sh с помощью следующей команды.

nano /opt/wildfly/bin/launch.sh

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

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

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

nano /etc/systemd/system/wildfly.service

Измените следующую строку.

ExecStart=/opt/wildfly/bin/launch.sh $WILDFLY_MODE $WILDFLY_CONFIG $WILDFLY_BIND $WILDFLY_CONSOLE_BIND

Сохраните и закройте файл, затем перезагрузите демон systemd, чтобы применить изменения.

systemctl daemon-reload

Теперь перезапустите службу Wildfly, чтобы применить изменения.

systemctl restart wildfly

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

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

sh /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

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

Using the realm 'ManagementRealm' as discovered from the existing property files.
Username : wadmin
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 'wadmin' for realm 'ManagementRealm'
Is this correct yes/no? yes
Added user 'wadmin' to file '/opt/wildfly/standalone/configuration/mgmt-users.properties'
Added user 'wadmin' to file '/opt/wildfly/domain/configuration/mgmt-users.properties'
Added user 'wadmin' with groups  to file '/opt/wildfly/standalone/configuration/mgmt-groups.properties'
Added user 'wadmin' 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 

Настройка Nginx для Wildfly

На данный момент Wildfly установлен и настроен для работы на localhost. Теперь вам нужно настроить Nginx в качестве обратного прокси для доступа к веб-интерфейсу Wildfly.

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

apt install nginx -y

Затем создайте файл конфигурации proxy_headers.

nano /etc/nginx/conf.d/proxy_headers.conf

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

proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
add_header Front-End-Https on;
add_header Cache-Control no-cache;

Сохраните и закройте файл, а затем создайте новый файл конфигурации виртуального хоста.

nano /etc/nginx/conf.d/wildfly.conf

Добавьте следующие конфигурации.

server {
  listen          80;
  server_name     wildfly.example.com;

  location / {
    include conf.d/proxy_headers.conf;
    proxy_pass http://127.0.0.1:8080;
  }

  location /management {
    include conf.d/proxy_headers.conf;
    proxy_pass http://127.0.0.1:9990/management;
  }

  location /console {
    include conf.d/proxy_headers.conf;
    proxy_pass http://127.0.0.1:9990/console;
  }

  location /logout {
    include conf.d/proxy_headers.conf;
    proxy_pass http://127.0.0.1:9990/logout;
  }

  location /error {
    include conf.d/proxy_headers.conf;
    proxy_pass http://127.0.0.1:9990;
  }

}

Сохраните файл, затем проверьте 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 restart nginx

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

systemctl status nginx

Вы должны увидеть следующий вывод.

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2023-02-15 09:38:18 UTC; 1s ago
       Docs: man:nginx(8)
    Process: 21027 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 21028 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 21029 (nginx)
      Tasks: 3 (limit: 4579)
     Memory: 3.4M
        CPU: 62ms
     CGroup: /system.slice/nginx.service
             ??21029 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ??21030 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
             ??21031 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

Feb 15 09:38:18 ubuntu2204 systemd[1]: Starting A high performance web server and a reverse proxy server...
Feb 15 09:38:18 ubuntu2204 systemd[1]: Started A high performance web server and a reverse proxy server.

Доступ к интерфейсу администратора Wildfly

Теперь откройте веб-браузер и зайдите в админ-интерфейс Wildfly, используя URL-адрес http://wildfly.example.com/console. Вам будет предложено ввести учетные данные администратора Wildfly, как показано ниже:

Вход в систему WildFly

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

Панель инструментов WildFly

Вы также можете перейти на страницу Wildfly по умолчанию, используя URL http://wildfly.example.com. Вы должны увидеть следующий экран.

Сервер приложений WildFly java

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *