Ricerca nel sito web

Come installare e configurare WildFly (JBoss) su Debian 11


Questo tutorial esiste per queste versioni del sistema operativo

  • Debian 11 (Bullseye)
  • Debian 10 (Buster)

Su questa pagina

  1. Prerequisiti
  2. Installa Java JDK
  3. Installa Wildfly
  4. Abilita la console di amministrazione di Wildfly
  5. Crea utente amministratore Wildfly
  6. Installa e configura Nginx come proxy inverso
  7. Accedi all'interfaccia utente web di Wildfly
  8. Conclusione

Wildfly è un application server scritto in Java e sviluppato da RedHat. È un server semplice, leggero e potente con una CLI e una console di amministrazione. È open source, multipiattaforma e basato su sottosistemi collegabili che possono essere aggiunti o rimossi secondo necessità. Fornisce tutte le funzionalità necessarie per eseguire un'applicazione Web Java.

In questo tutorial, ti mostrerò come installare Wildfly con Nginx come proxy inverso su Debian 11.

Prerequisiti

  • Un server che esegue Debian 11.
  • Un nome di dominio valido indicato con l'IP del tuo server.
  • Una password di root è configurata sul tuo server.

Installa Java JDK

Wildfly è un'applicazione basata su Java, quindi Java deve essere installato sul tuo server. Se non è installato, puoi installarlo eseguendo il seguente comando:

apt-get install default-jdk -y

Una volta installato Java, puoi verificarlo usando il seguente comando:

java --version

Dovresti vedere la versione di Java nel seguente output:

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)

Installa Wildfly

Innanzitutto, crea un utente e un gruppo per eseguire l'applicazione Wildfly utilizzando il seguente comando:

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

Successivamente, scarica l'ultima versione di Wildfly usando il comando wget:

wget https://github.com/wildfly/wildfly/releases/download/25.0.1.Final/wildfly-25.0.1.Final.zip

Una volta completato il download, decomprimere il file scaricato con il seguente comando:

unzip wildfly-25.0.1.Final.zip

Successivamente, sposta la directory estratta in /opt utilizzando il seguente comando:

mv wildfly-25.0.1.Final /opt/wildfly

Quindi, cambia la proprietà della directory /opt/wildfly:

chown -RH wildfly:wildfly /opt/wildfly

Successivamente, crea una directory di configurazione Wildfly all'interno di /etc utilizzando il seguente comando:

mkdir -p /etc/wildfly

Successivamente, copia tutti i file necessari dalla directory Wildfly alla directory /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/

Successivamente, imposta l'autorizzazione di esecuzione su tutti i file di script della shell:

chmod +x /opt/wildfly/bin/*.sh

Successivamente, ricarica il demone systemd con il seguente comando:

systemctl daemon-reload

Successivamente, avvia e abilita il servizio Wildfly utilizzando il seguente comando:

systemctl start wildfly
systemctl enable wildfly

Per verificare lo stato del servizio Wildfly, eseguire il seguente comando:

systemctl status wildfly

Otterrai il seguente output:

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

Abilita la console di amministrazione Wildfly

Per impostazione predefinita, la console di amministrazione di Wildfly è disabilitata. Si consiglia di abilitarlo per gestire l'applicazione Wildfly.

Puoi abilitarlo modificando il file di configurazione di Wildfly:

nano /etc/wildfly/wildfly.conf

Modifica le seguenti righe:

WILDFLY_BIND=127.0.0.1
WILDFLY_CONSOLE_BIND=127.0.0.1

Salva e chiudi il file, quindi modifica lo script di avvio Wildfly e abilita la console di amministrazione.

nano /opt/wildfly/bin/launch.sh

Modificare il file come mostrato di seguito:

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

Salva e chiudi il file, quindi modifica il file systemd Wildfly:

nano /etc/systemd/system/wildfly.service

Modifica la riga seguente:

ExecStart=/opt/wildfly/bin/launch.sh $WILDFLY_MODE $WILDFLY_CONFIG $WILDFLY_BIND $WILDFLY_CONSOLE_BIND

Salva e chiudi il file, quindi ricarica il demone systemd per applicare le modifiche alla configurazione:

systemctl daemon-reload

Successivamente, riavvia il servizio Wildfly per applicare le modifiche:

systemctl restart wildfly

Puoi anche controllare lo stato del Wildfly con il seguente comando:

systemctl status wildfly

Otterrai il seguente output:

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

A questo punto Wildfly viene avviato ed è in ascolto sulle porte 8080 e 9990. Puoi verificarle con il seguente comando:

ss -plnt

Otterrai il seguente output:

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))            

Una volta terminato, puoi procedere al passaggio successivo.

Crea utente amministratore Wildfly

Successivamente, dovrai anche creare un utente amministratore per accedere alla console di amministrazione di Wildfly. Puoi crearlo eseguendo il seguente comando:

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

Ti verrà chiesto di scegliere le tipologie di utenza:

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

Digitare a e premere il tasto Invio per aggiungere l'utente di gestione. Ti verrà chiesto di definire il tuo nome utente e password come mostrato di seguito:

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 : 

Fornisci il tuo nome utente, password e premi Invio. Ti verrà chiesto di aggiungere utenti al realm:

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

Digita yes e premi il tasto Invio per continuare. Una volta aggiunto l'utente, otterrai il seguente output:

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 

Una volta terminato, puoi procedere al passaggio successivo.

Installa e configura Nginx come proxy inverso

Successivamente, dovrai configurare Nginx come proxy inverso per accedere a Wildfly attraverso la porta 80.

Innanzitutto, installa il pacchetto Nginx utilizzando il comando seguente:

apt-get install nginx -y

Una volta installato Nginx, crea un file proxy Nginx con il seguente comando:

nano /etc/nginx/conf.d/proxy_headers.conf

Aggiungi le seguenti righe:

proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
add_header Front-End-Https on;
add_header Cache-Control no-cache;

Salva e chiudi il file, quindi crea un file di configurazione dell'host virtuale Nginx per Wildfly:

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

Aggiungi le seguenti righe:

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

}

Salva e chiudi il file, quindi verifica Nginx per eventuali errori di sintassi utilizzando il seguente comando:

nginx -t

Dovresti vedere il seguente output:

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

Infine, riavvia il servizio Nginx per applicare le modifiche:

systemctl restart nginx

Puoi anche controllare lo stato di Nginx usando il comando seguente:

systemctl status nginx

Otterrai il seguente output:

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

A questo punto, Nginx è installato e configurato per servire Wildfly. Ora puoi procedere al passaggio successivo.

Accedi all'interfaccia utente Web di Wildfly

Ora apri il tuo browser web e accedi alla pagina dell'applicazione Wildfly utilizzando l'URL http://wildfly.yourdomain.com. Dovresti vedere la pagina predefinita di Wildfly nella seguente schermata:

Per accedere alla console di amministrazione di Wildfly digita l'URL http://wildfly.tuodominio.com/console/ nel tuo browser web. Ti verrà chiesto di fornire un nome utente e una password di amministratore come mostrato di seguito:

Fornisci il nome utente e la password dell'amministratore e fai clic sul pulsante Accedi. Una volta effettuato l'accesso, dovresti vedere la dashboard di amministrazione di Wildfly:

Conclusione

Congratulazioni! hai installato con successo Wildfly con Nginx come proxy inverso su Debian 11. Ora puoi utilizzare Wildfly per ospitare la tua applicazione Java su Internet. Non esitate a chiedermi se avete domande.