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

Как установить сервер Java-приложений WildFly с 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.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

Далее вам нужно будет добавить пользователя-администратора для доступа к консоли администратора 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 установлен и настроен для работы на локальном хосте. Теперь вам нужно будет настроить 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 на следующем экране.

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

Заключение

Поздравляем! вы успешно установили Wildfly с Nginx в качестве обратного прокси-сервера на сервере Ubuntu 22.04. Теперь вы можете начать создавать потрясающее приложение на платформе Wildfly. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.

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