Как установить и настроить WildFly (JBoss) в Debian 11
Это руководство существует для этих версий ОС
- Debian 11 (Bullseye)
- Debian 10 (Buster)
На этой странице
- Предпосылки
- Установите Java JDK
- Установить Wildfly
- Включить консоль администратора Wildfly
- Создание пользователя-администратора Wildfly
- Установка и настройка Nginx в качестве обратного прокси-сервера
- Доступ к веб-интерфейсу Wildfly
- Заключение
Wildfly — это сервер приложений, написанный на Java и разработанный RedHat. Это простой, легкий и мощный сервер с интерфейсом командной строки и консолью администратора. Это кросс-платформенный продукт с открытым исходным кодом, основанный на подключаемых подсистемах, которые можно добавлять или удалять по мере необходимости. Он предоставляет все необходимые функции для запуска веб-приложения Java.
В этом руководстве я покажу вам, как установить Wildfly с Nginx в качестве обратного прокси-сервера на Debian 11.
Предпосылки
- Сервер под управлением Debian 11.
- Действительное доменное имя, указанное с IP-адресом вашего сервера.
- На вашем сервере настроен пароль root.
Установите Java JDK
Wildfly — это приложение на основе Java, поэтому на вашем сервере должна быть установлена Java. Если он не установлен, вы можете установить его, выполнив следующую команду:
apt-get install default-jdk -y
После установки Java вы можете проверить это с помощью следующей команды:
java --version
Вы должны увидеть версию Java в следующем выводе:
openjdk 11.0.12 2021-07-20
OpenJDK Runtime Environment (build 11.0.12+7-post-Debian-2deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.12+7-post-Debian-2deb10u1, mixed mode, sharing)
Установить Wildfly
Сначала создайте пользователя и группу для запуска приложения Wildfly с помощью следующей команды:
groupadd -r wildfly
useradd -r -g wildfly -d /opt/wildfly -s /sbin/nologin wildfly
Затем загрузите последнюю версию Wildfly с помощью команды wget:
wget https://github.com/wildfly/wildfly/releases/download/25.0.1.Final/wildfly-25.0.1.Final.zip
После завершения загрузки разархивируйте загруженный файл с помощью следующей команды:
unzip wildfly-25.0.1.Final.zip
Затем переместите извлеченный каталог в /opt с помощью следующей команды:
mv wildfly-25.0.1.Final /opt/wildfly
Затем измените владельца каталога /opt/wildfly:
chown -RH wildfly:wildfly /opt/wildfly
Затем создайте каталог конфигурации Wildfly внутри /etc, используя следующую команду:
mkdir -p /etc/wildfly
Затем скопируйте все необходимые файлы из каталога Wildfly в каталог /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/
Затем установите разрешение на выполнение для всех файлов сценариев оболочки:
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 Fri 2021-12-10 14:55:07 UTC; 6s ago
Main PID: 20928 (launch.sh)
Tasks: 59 (limit: 4701)
Memory: 171.6M
CGroup: /system.slice/wildfly.service
??20928 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0
??20929 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0
??21022 java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=tru
Dec 10 14:55:07 debian11 systemd[1]: Started The WildFly Application Server.
Включить консоль администратора Wildfly
По умолчанию консоль администратора Wildfly отключена. Рекомендуется включить его для управления приложением Wildfly.
Вы можете включить его, отредактировав файл конфигурации Wildfly:
nano /etc/wildfly/wildfly.conf
Измените следующие строки:
WILDFLY_BIND=127.0.0.1
WILDFLY_CONSOLE_BIND=127.0.0.1
Сохраните и закройте файл, затем отредактируйте сценарий запуска Wildfly и включите консоль администратора.
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 с помощью следующей команды:
systemctl status wildfly
Вы получите следующий вывод:
? wildfly.service - The WildFly Application Server
Loaded: loaded (/etc/systemd/system/wildfly.service; disabled; vendor preset: enabled)
Active: active (running) since Fri 2021-12-10 14:57:22 UTC; 3s ago
Main PID: 21182 (launch.sh)
Tasks: 64 (limit: 4701)
Memory: 205.6M
CGroup: /system.slice/wildfly.service
??21182 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 127.0.0.1 127.0.0.1
??21183 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 127.0.0.1 -bmanagement 127.0.0.1
??21282 java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=tru
Dec 10 14:57:22 debian11 systemd[1]: Started The WildFly Application Server.
В этот момент Wildfly запускается и прослушивает порты 8080 и 9990. Вы можете проверить их с помощью следующей команды:
ss -plnt
Вы получите следующий вывод:
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=678,fd=3))
LISTEN 0 128 127.0.0.1:8443 0.0.0.0:* users:(("java",pid=21282,fd=485))
LISTEN 0 50 127.0.0.1:9990 0.0.0.0:* users:(("java",pid=21282,fd=487))
LISTEN 0 80 127.0.0.1:3306 0.0.0.0:* users:(("mysqld",pid=12461,fd=21))
LISTEN 0 128 127.0.0.1:8080 0.0.0.0:* users:(("java",pid=21282,fd=476))
LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=678,fd=4))
Как только вы закончите, вы можете перейти к следующему шагу.
Создать пользователя-администратора 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
Введите a и нажмите клавишу Enter, чтобы добавить пользователя управления. Вам будет предложено определить имя пользователя и пароль, как показано ниже:
Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property files.
Username : hitesh
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 'hitesh' for realm 'ManagementRealm'
Is this correct yes/no? yes
Введите yes и нажмите клавишу Enter, чтобы продолжить. После добавления пользователя вы получите следующий вывод:
Added user 'hitesh' to file '/opt/wildfly/standalone/configuration/mgmt-users.properties'
Added user 'hitesh' to file '/opt/wildfly/domain/configuration/mgmt-users.properties'
Added user 'hitesh' with groups to file '/opt/wildfly/standalone/configuration/mgmt-groups.properties'
Added user 'hitesh' 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 Jakarta Enterprise Beans calls.
yes/no? yes
To represent the user add the following to the server-identities definition
Как только вы закончите, вы можете перейти к следующему шагу.
Установите и настройте Nginx в качестве обратного прокси
Далее вам нужно будет настроить Nginx в качестве обратного прокси-сервера для доступа к Wildfly через порт 80.
Сначала установите пакет Nginx с помощью следующей команды:
apt-get install nginx -y
После установки Nginx создайте прокси-файл Nginx с помощью следующей команды:
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;
Сохраните и закройте файл, затем создайте файл конфигурации виртуального хоста Nginx для Wildfly:
nano /etc/nginx/conf.d/wildfly.conf
Добавьте следующие строки:
server {
listen 80;
server_name wildfly.yourdomain.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 Fri 2021-12-10 15:12:26 UTC; 9s ago
Docs: man:nginx(8)
Process: 22115 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 22116 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 22117 (nginx)
Tasks: 3 (limit: 4701)
Memory: 3.8M
CGroup: /system.slice/nginx.service
??22117 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
??22118 nginx: worker process
??22119 nginx: worker process
Dec 10 15:12:25 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server...
Dec 10 15:12:26 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.
На данный момент Nginx установлен и настроен для обслуживания Wildfly. Теперь вы можете перейти к следующему шагу.
Доступ к веб-интерфейсу Wildfly
Теперь откройте веб-браузер и перейдите на страницу приложения Wildfly, используя URL-адрес http://wildfly.yourdomain.com. Вы должны увидеть стандартную страницу Wildfly на следующем экране:

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

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

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