Ricerca nel sito web

Installa WildFly Java Application Server con Nginx Reverse Proxy su Rocky Linux 8


Su questa pagina

  1. Prerequisiti
  2. Installa Java
  3. Installa Wildfly
  4. Aggiungi utente amministratore Wildfly
  5. Configura Firewall e SELinux
  6. Accedi alla console di amministrazione di Wildfly
  7. Configura Nginx come proxy inverso per Wildfly
  8. Conclusione

WildFly è un server di applicazioni open source e multipiattaforma sviluppato da RedHat. È scritto in Java e utilizzato per lo sviluppo di applicazioni Java. È semplice, flessibile, leggero e basato su sottosistemi collegabili che possono essere aggiunti o rimossi in base alle proprie esigenze. Viene fornito con una dashboard semplice e intuitiva e mira a fornire agli utenti un ambiente di runtime Java veloce e stabile.

In questo tutorial, ti mostreremo come installare Wildfly con Nginx come proxy inverso su Rocky Linux 8. Gli stessi passaggi funzioneranno anche su AlmaLinux 8 e CentOS 8.

Prerequisiti

  • Un server che esegue Rocky Linux 8/AlmaLinux 8 o centOS 8.
  • Il server è configurato con una password di root.

Installa Java

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

dnf install java-11-openjdk-devel -y

Dopo aver installato Java, puoi verificare la versione installata di Java con il seguente comando:

java --version

Dovresti ottenere il seguente output:

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)

Installa Wildfly

Prima di installare Wildfly, dovrai creare un utente e un gruppo separati per eseguire Wildfly. Puoi crearli con il seguente comando:

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

Successivamente, dovrai scaricare l'ultima versione di Wildfly dal loro sito Web ufficiale. Al momento della stesura di questo tutorial, l'ultima versione disponibile di Wildfly è la 20.0.1. Puoi scaricarlo con il seguente comando:

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

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

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

Successivamente, copia la directory estratta in /opt con il seguente comando:

mv wildfly-20.0.1.Final /opt/wildfly

Quindi, crea una directory per archiviare i file di configurazione di Wildfly:

mkdir /etc/wildfly

Successivamente, copia tutti i file necessari nella posizione desiderata con il seguente comando:

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, assegna la proprietà e le autorizzazioni appropriate alla directory e ai file wildfly con il seguente comando:

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

Successivamente, ricarica il demone systemd con il seguente comando:

systemctl daemon-reload

Successivamente, avvia il servizio Wildfly e abilitalo per l'avvio all'avvio con il seguente comando:

systemctl start wildfly
systemctl enable wildfly

Ora puoi verificare lo stato del servizio Wildfly con il seguente comando:

systemctl status wildfly

Dovresti ottenere il seguente output:

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

A questo punto Wildfly è installato e avviato. Per impostazione predefinita, il server delle applicazioni wildfly è in ascolto sulla porta 8080. Puoi verificarlo con il seguente comando:

ss -tunelp | grep 8080

Dovresti ottenere il seguente output:

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

La console di amministrazione di Wildfly è in ascolto sulla porta 9990. Puoi verificarlo con il seguente comando:

ss -tunelp | grep 9990

Dovresti ottenere il seguente output:

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

Aggiungi utente amministratore Wildfly

Per accedere alla console di amministrazione di WildFly, dovrai creare un utente amministrativo per Wildfly. Puoi crearlo con il seguente comando:

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

Ti verrà chiesto di scegliere il tipo di utente che desideri aggiungere come mostrato di seguito:

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

Digita a per l'utente di gestione e premi Invio. Dovresti vedere il seguente output:

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

Fornisci il nome utente desiderato e premi Invio. Dovresti vedere il seguente output:

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 la tua password e premi Invio. Dovresti vedere il seguente output:

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 

A questo punto, viene creato il tuo utente di gestione Wildfly. Puoi procedere al passaggio successivo.

Configura Firewall e SELinux

Per impostazione predefinita, SELinux è abilitato in Rocky Linux 8. Quindi dovrai configurare SELinux per Wildfly. Puoi farlo con il seguente comando:

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

Successivamente, dovrai consentire la porta 8080, 9990 e 80 attraverso il firewall. Puoi farlo con il seguente comando:

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

Successivamente, ricarica il firewalld per applicare le modifiche.

firewall-cmd --reload

Una volta terminato, puoi procedere al passaggio successivo.

Accedi alla console di amministrazione di Wildfly

Per impostazione predefinita, la console di amministrazione di Wildfly è accessibile solo dal localhost. Dovrai modificare /opt/wildfly/bin/launch.sh e apportare alcune modifiche per l'accesso esterno.

nano /opt/wildfly/bin/launch.sh

Trova la seguente riga:

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

E sostituirlo con la seguente riga:

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

Salva e chiudi il file, quindi riavvia il servizio Wildfly per applicare le modifiche.

systemctl restart wildfly

Ora apri il tuo browser web e accedi alla console di amministrazione di Wildfly utilizzando l'URL http://your-server-ip:9990. Ti verrà chiesto di fornire nome utente e password come mostrato di seguito:

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

Configura Nginx come proxy inverso per Wildfly

Per impostazione predefinita, l'applicazione Wildfly è accessibile sulla porta 8080. Pertanto, si consiglia di configurare Nginx come proxy inverso in modo che sia possibile accedervi utilizzando la porta 80.

Innanzitutto, installa il server Web Nginx con il seguente comando;

dnf install nginx -y

Una volta installato, crea un nuovo file di configurazione Wildfly con il seguente comando:

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

Aggiungi le seguenti righe:

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

Salva e chiudi il file, quindi controlla Nginx per eventuali errori di configurazione con il seguente comando:

nginx -t

Se tutto va bene dovresti ottenere il seguente output:

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

Successivamente, avvia Nginx e abilitalo per l'avvio al riavvio del sistema con il seguente comando:

systemctl start nginx
systemctl enable nginx

Puoi anche controllare lo stato del servizio Nginx con il seguente comando:

systemctl status nginx

Dovresti ottenere il seguente output:

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

A questo punto, Nginx è installato e configurato per servire la tua applicazione Wildfly. È ora possibile accedere all'applicazione Wildfly utilizzando l'URL http://your-server-ip. Dovresti vedere la seguente schermata:

Conclusione

In questa guida abbiamo imparato come installare Wildfly e abilitare l'accesso remoto su Rocky Linux 8. Abbiamo anche configurato Nginx come proxy inverso per accedere a Wildfly attraverso la porta 80. Ora puoi iniziare a creare l'applicazione Java e gestirla dal Console di amministrazione widlfly.