Установите сервер приложений Java WildFly с обратным прокси-сервером Nginx на Rocky Linux 8
На этой странице
- Предпосылки
- Установить Java
- Установить Wildfly
- Добавить пользователя-администратора Wildfly
- Настройка брандмауэра и SELinux
- Доступ к консоли администратора Wildfly
- Настройка Nginx в качестве обратного прокси-сервера для Wildfly
- Заключение
WildFly — это кроссплатформенный сервер приложений с открытым исходным кодом, разработанный RedHat. Он написан на Java и используется для разработки Java-приложений. Он простой, гибкий, легкий и основан на подключаемых подсистемах, которые можно добавлять или удалять в соответствии с вашими требованиями. Он поставляется с простой и удобной панелью инструментов и призван предоставить пользователям быструю и стабильную среду выполнения Java.
В этом руководстве мы покажем вам, как установить Wildfly с Nginx в качестве обратного прокси-сервера в Rocky Linux 8. Те же шаги будут работать и в AlmaLinux 8 и CentOS 8.
Предпосылки
- Сервер под управлением Rocky Linux 8/AlmaLinux 8 или centOS 8.
- Пароль root настраивается на сервере.
Установить Java
Wildfly — это приложение на основе Java, поэтому на вашем сервере должна быть установлена Java. Если он не установлен, вы можете установить его с помощью следующей команды:
dnf install java-11-openjdk-devel -y
После установки Java вы можете проверить установленную версию Java с помощью следующей команды:
java --version
Вы должны получить следующий результат:
openjdk 11.0.8 2020-07-14 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.8+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.8+10-LTS, mixed mode, sharing)
Установить Wildfly
Перед установкой Wildfly вам нужно будет создать отдельного пользователя и группу для запуска Wildfly. Вы можете создать их с помощью следующей команды:
groupadd --system wildfly
useradd -s /sbin/nologin --system -d /opt/wildfly -g wildfly wildfly
Далее вам нужно будет загрузить последнюю версию Wildfly с их официального сайта. На момент написания этого руководства последняя доступная версия Wildfly — 20.0.1. Вы можете скачать его с помощью следующей команды:
wget https://download.jboss.org/wildfly/20.0.1.Final/wildfly-20.0.1.Final.tar.gz
После завершения загрузки извлеките загруженный файл с помощью следующей команды:
tar -xvzf /root/wildfly-20.0.1.Final.tar.gz
Затем скопируйте извлеченный каталог в /opt с помощью следующей команды:
mv wildfly-20.0.1.Final /opt/wildfly
Затем создайте каталог для хранения файлов конфигурации Wildfly:
mkdir /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/
Затем укажите права собственности и права доступа к каталогу и файлам wildfly с помощью следующей команды:
chmod +x /opt/wildfly/bin/launch.sh
chown -R wildfly:wildfly /opt/wildfly
chmod -R +x /opt/wildfly/
Затем перезагрузите демон 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: disabled)
Active: active (running) since Sun 2020-09-13 05:57:22 EDT; 16s ago
Main PID: 31834 (launch.sh)
Tasks: 123 (limit: 12527)
Memory: 304.1M
CGroup: /system.slice/wildfly.service
??31834 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0
??31835 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0
??31925 java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=tru>
Sep 13 05:57:22 centos8 systemd[1]: Started The WildFly Application Server.
На данный момент Wildfly установлен и запущен. По умолчанию сервер приложений wildfly прослушивает порт 8080. Вы можете проверить это с помощью следующей команды:
ss -tunelp | grep 8080
Вы должны получить следующий результат:
tcp LISTEN 0 128 0.0.0.0:8080 0.0.0.0:* users:(("java",pid=31925,fd=478)) uid:989 ino:59014 sk:9
Консоль администратора Wildfly прослушивает порт 9990. Вы можете проверить это с помощью следующей команды:
ss -tunelp | grep 9990
Вы должны получить следующий результат:
tcp LISTEN 0 50 127.0.0.1:9990 0.0.0.0:* users:(("java",pid=31925,fd=138)) uid:989 ino:59017 sk:7
Добавить пользователя-администратора 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
Введите для пользователя управления и нажмите Enter. Вы должны увидеть следующий вывод:
Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property files.
Username : wildflyadmin
Укажите желаемое имя пользователя и нажмите Enter. Вы должны увидеть следующий вывод:
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 '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. Вы можете перейти к следующему шагу.
Настройте брандмауэр и SELinux
По умолчанию SELinux включен в Rocky Linux 8. Поэтому вам нужно настроить SELinux для Wildfly. Вы можете сделать это с помощью следующей команды:
semanage fcontext -a -t bin_t "/opt/wildfly/bin(/.*)?"
restorecon -Rv /opt/wildfly/bin/
setsebool -P httpd_can_network_connect 1
Далее вам нужно будет разрешить порты 8080, 9990 и 80 через брандмауэр. Вы можете сделать это с помощью следующей команды:
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --permanent --add-port=9990/tcp
firewall-cmd --permanent --add-port=80/tcp
Затем перезагрузите firewalld, чтобы применить изменения.
firewall-cmd --reload
Как только вы закончите, вы можете перейти к следующему шагу.
Доступ к консоли администратора Wildfly
По умолчанию консоль администратора Wildfly доступна только с локального хоста. Вам нужно будет отредактировать /opt/wildfly/bin/launch.sh и внести некоторые изменения для внешнего доступа.
nano /opt/wildfly/bin/launch.sh
Найдите следующую строку:
$WILDFLY_HOME/bin/standalone.sh -c $2 -b $3
И замените его следующей строкой:
$WILDFLY_HOME/bin/standalone.sh -c $2 -b $3 -bmanagement=0.0.0.0
Сохраните и закройте файл, затем перезапустите службу Wildfly, чтобы изменения вступили в силу.
systemctl restart wildfly
Теперь откройте веб-браузер и войдите в консоль администратора Wildfly, используя URL-адрес http://your-server-ip:9990. Вам будет предложено ввести имя пользователя и пароль, как показано ниже:

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

Настройте Nginx в качестве обратного прокси для Wildfly
По умолчанию приложение Wildfly доступно через порт 8080. Поэтому рекомендуется настроить Nginx в качестве обратного прокси-сервера, чтобы к нему можно было получить доступ через порт 80.
Сначала установите веб-сервер Nginx с помощью следующей команды;
dnf install nginx -y
После установки создайте новый файл конфигурации Wildfly с помощью следующей команды:
nano /etc/nginx/conf.d/wildfly.conf
Добавьте следующие строки:
upstream wildfly {
server 127.0.0.1:8080 weight=100 max_fails=5 fail_timeout=5;
}
server {
listen 80;
server_name your-server-ip;
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 и включите его запуск при перезагрузке системы с помощью следующей команды:
systemctl start nginx
systemctl enable nginx
Вы также можете проверить статус службы Nginx с помощью следующей команды:
systemctl status nginx
Вы должны получить следующий результат:
? nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Drop-In: /usr/lib/systemd/system/nginx.service.d
??php-fpm.conf
Active: active (running) since Sun 2020-09-13 06:03:37 EDT; 5s ago
Process: 1775 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 1773 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 1771 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Main PID: 1776 (nginx)
Tasks: 3 (limit: 12527)
Memory: 5.4M
CGroup: /system.slice/nginx.service
??1776 nginx: master process /usr/sbin/nginx
??1777 nginx: worker process
??1778 nginx: worker process
Sep 13 06:03:37 centos8 systemd[1]: Stopped The nginx HTTP and reverse proxy server.
Sep 13 06:03:37 centos8 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Sep 13 06:03:37 centos8 nginx[1773]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Sep 13 06:03:37 centos8 nginx[1773]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Sep 13 06:03:37 centos8 systemd[1]: Started The nginx HTTP and reverse proxy server.
На этом этапе Nginx установлен и настроен для обслуживания вашего приложения Wildfly. Теперь вы можете получить доступ к приложению Wildfly, используя URL-адрес http://your-server-ip. Вы должны увидеть следующий экран:

Заключение
В этом руководстве мы узнали, как установить Wildfly и включить удаленный доступ в Rocky Linux 8. Мы также настроили Nginx в качестве обратного прокси-сервера для доступа к Wildfly через порт 80. Теперь вы можете начать создавать приложение Java и управлять им из Консоль администратора Widlfly.