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, как показано ниже:

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

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