Instaloni serverin e aplikacionit Java WildFly me përfaqësuesin e kundërt Nginx në Rocky Linux 8


WildFly është një server aplikacioni me burim të hapur dhe ndër-platformë i zhvilluar nga RedHat. Është shkruar në Java dhe përdoret për zhvillimin e aplikacioneve Java. Është i thjeshtë, fleksibël, i lehtë dhe i bazuar në nënsisteme të mbyllshme që mund të shtohen ose hiqen sipas kërkesave tuaja. Ai vjen me një panel të thjeshtë dhe miqësor për përdoruesit dhe synon t'u sigurojë përdoruesve një mjedis të shpejtë dhe të qëndrueshëm të ekzekutimit të Java.

Në këtë tutorial, ne do t'ju tregojmë se si të instaloni Wildfly me Nginx si një përfaqësues i kundërt në Rocky Linux 8. Të njëjtat hapa do të funksionojnë edhe në AlmaLinux 8 dhe CentOS 8 gjithashtu.

Parakushtet

  • Një server që ekzekuton Rocky Linux 8/AlmaLinux 8 ose centOS 8.
  • Një fjalëkalim rrënjësor është konfiguruar në server.

Instaloni Java

Wildfly është një aplikacion i bazuar në Java, kështu që Java duhet të instalohet në serverin tuaj. Nëse nuk është i instaluar, mund ta instaloni me komandën e mëposhtme:

dnf install java-11-openjdk-devel -y

Pas instalimit të Java, mund të verifikoni versionin e instaluar të Java me komandën e mëposhtme:

java --version

Ju duhet të merrni daljen e mëposhtme:

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)

Instaloni Wildfly

Përpara se të instaloni Wildfly, do t'ju duhet të krijoni një përdorues dhe grup të veçantë për të ekzekutuar Wildfly. Ju mund t'i krijoni ato me komandën e mëposhtme:

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

Më pas, do t'ju duhet të shkarkoni versionin më të fundit të Wildfly nga faqja e tyre zyrtare. Në kohën e shkrimit të këtij tutoriali, versioni më i fundit i disponueshëm i Wildfly është 20.0.1. Mund ta shkarkoni me komandën e mëposhtme:

wget https://download.jboss.org/wildfly/20.0.1.Final/wildfly-20.0.1.Final.tar.gz

Pasi të përfundojë shkarkimi, nxirrni skedarin e shkarkuar me komandën e mëposhtme:

tar -xvzf /root/wildfly-20.0.1.Final.tar.gz

Më pas, kopjoni drejtorinë e nxjerrë në /opt me komandën e mëposhtme:

mv wildfly-20.0.1.Final /opt/wildfly

Më pas, krijoni një direktori për të ruajtur skedarët e konfigurimit Wildfly:

mkdir /etc/wildfly

Tjetra, kopjoni të gjithë skedarët e nevojshëm në vendndodhjen e dëshiruar me komandën e mëposhtme:

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/

Më pas, jepni pronësinë dhe lejet e duhura në drejtorinë dhe skedarët wildfly me komandën e mëposhtme:

chmod +x /opt/wildfly/bin/launch.sh
chown -R wildfly:wildfly /opt/wildfly
chmod -R +x /opt/wildfly/

Tjetra, ringarkoni demonin systemd me komandën e mëposhtme:

systemctl daemon-reload

Më pas, filloni shërbimin Wildfly dhe aktivizoni atë të fillojë në nisje me komandën e mëposhtme:

systemctl start wildfly
systemctl enable wildfly

Tani mund të verifikoni statusin e shërbimit Wildfly me komandën e mëposhtme:

systemctl status wildfly

Ju duhet të merrni daljen e mëposhtme:

? 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.

Në këtë pikë Wildfly është instaluar dhe nisur. Si parazgjedhje, serveri i aplikacionit wildfly po dëgjon në portin 8080. Mund ta kontrolloni me komandën e mëposhtme:

ss -tunelp | grep 8080

Ju duhet të merrni daljen e mëposhtme:

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

Konsola e administratorit Wildfly po dëgjon në portin 9990. Mund ta kontrolloni me komandën e mëposhtme:

ss -tunelp | grep 9990

Ju duhet të merrni daljen e mëposhtme:

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

Shto përdoruesin e administratorit Wildfly

Për të hyrë në konsolën e administrimit të WildFly, do t'ju duhet të krijoni një përdorues administrativ për Wildfly. Mund ta krijoni me komandën e mëposhtme:

/opt/wildfly/bin/add-user.sh

Do t'ju kërkohet të zgjidhni llojin e përdoruesit që dëshironi të shtoni siç tregohet më poshtë:

What type of user do you wish to add? 
 a) Management User (mgmt-users.properties) 
 b) Application User (application-users.properties)
(a): a           

Shkruani një për përdoruesit e menaxhimit dhe shtypni Enter. Ju duhet të shihni daljen e mëposhtme:

Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property files.
Username : wildflyadmin

Jepni emrin e përdoruesit që dëshironi dhe shtypni Enter. Ju duhet të shihni daljen e mëposhtme:

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 : 

Jepni fjalëkalimin tuaj dhe shtypni Enter. Ju duhet të shihni daljen e mëposhtme:

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 

Në këtë pikë, krijohet përdoruesi juaj i menaxhimit të Wildfly. Mund të vazhdoni në hapin tjetër.

Konfiguro Firewall dhe SELinux

Si parazgjedhje, SELinux është i aktivizuar në Rocky Linux 8. Kështu që do t'ju duhet të konfiguroni SELinux për Wildfly. Mund ta bëni me komandën e mëposhtme:

semanage fcontext -a -t bin_t "/opt/wildfly/bin(/.*)?"
restorecon -Rv /opt/wildfly/bin/
setsebool -P httpd_can_network_connect 1

Më pas, do t'ju duhet të lejoni portat 8080, 9990 dhe 80 përmes murit të zjarrit. Mund ta bëni me komandën e mëposhtme:

firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --permanent --add-port=9990/tcp
firewall-cmd --permanent --add-port=80/tcp

Më pas, ringarkoni murin e zjarrit për të aplikuar ndryshimet.

firewall-cmd --reload

Pasi të keni mbaruar, mund të vazhdoni në hapin tjetër.

Hyni në panelin e administratorit Wildfly

Si parazgjedhje, tastiera e administratorit Wildfly është e aksesueshme vetëm nga localhost. Do t'ju duhet të redaktoni /opt/wildfly/bin/launch.sh dhe të bëni disa ndryshime për akses të jashtëm.

nano /opt/wildfly/bin/launch.sh

Gjeni rreshtin e mëposhtëm:

    $WILDFLY_HOME/bin/standalone.sh -c $2 -b $3

Dhe, zëvendësojeni atë me rreshtin e mëposhtëm:

    $WILDFLY_HOME/bin/standalone.sh -c $2 -b $3 -bmanagement=0.0.0.0

Ruani dhe mbyllni skedarin dhe më pas rinisni shërbimin Wildfly për të aplikuar ndryshimet.

systemctl restart wildfly

Tani, hapni shfletuesin tuaj të internetit dhe hyni në konsolën e administratorit Wildfly duke përdorur URL-në http://your-server-ip:9990. Do t'ju kërkohet të jepni emrin e përdoruesit dhe fjalëkalimin siç tregohet më poshtë:

Jepni emrin e përdoruesit, fjalëkalimin e administratorit të Wildfly dhe klikoni në butonin Identifikohu hyni. Pasi të identifikoheni, duhet të shihni panelin e administratorit Wildfly në ekranin e mëposhtëm:

Konfiguro Nginx si një përfaqësues i kundërt për Wildfly

Si parazgjedhje, aplikacioni Wildfly është i aksesueshëm në portin 8080. Prandaj, rekomandohet mënyra për të konfiguruar Nginx si një përfaqësues të kundërt, në mënyrë që të mund të aksesohet duke përdorur portën 80.

Së pari, instaloni serverin në internet Nginx me komandën e mëposhtme;

dnf install nginx -y

Pasi të instalohet, krijoni një skedar të ri konfigurimi Wildfly me komandën e mëposhtme:

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

Shtoni rreshtat e mëposhtëm:

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/;
  }
}

Ruani dhe mbyllni skedarin dhe më pas kontrolloni Nginx për çdo gabim konfigurimi me komandën e mëposhtme:

nginx -t

Nëse gjithçka është në rregull, duhet të merrni rezultatin e mëposhtëm:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Tjetra, nisni Nginx dhe aktivizoni atë të fillojë në rindezjen e sistemit me komandën e mëposhtme:

systemctl start nginx
systemctl enable nginx

Ju gjithashtu mund të kontrolloni statusin e shërbimit Nginx me komandën e mëposhtme:

systemctl status nginx

Ju duhet të merrni daljen e mëposhtme:

? 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.

Në këtë pikë, Nginx është instaluar dhe konfiguruar për të shërbyer aplikacionin tuaj Wildfly. Tani mund të përdorni aplikacionin Wildfly duke përdorur URL-në http://your-server-ip. Ju duhet të shihni ekranin e mëposhtëm:

konkluzioni

Në këtë udhëzues, ne mësuam se si të instalojmë Wildfly dhe të aktivizojmë aksesin në distancë në Rocky Linux 8. Ne konfiguruam gjithashtu Nginx si një përfaqësues të kundërt për të hyrë në Wildfly përmes portit 80. Tani, mund të filloni të ndërtoni aplikacionin Java dhe ta menaxhoni atë nga Konsola e administratorit Widlfly.