GlassFish è una prima implementazione open source al mondo della piattaforma Java sviluppata da Eclipse Foundation. È un server applicativo leggero e supporta diverse tecnologie basate su Java come Enterprise JavaBeans, JPA, JavaServer Faces, JMS e molte altre. GlassFish viene fornito con una console di amministrazione semplice e facile da usare con uno strumento di aggiornamento per aggiornamenti e componenti aggiuntivi.
In questo tutorial spiegheremo come installare GlassFish su Debian 10 con Nginx come proxy inverso.
Requisiti
- Un server che esegue Debian 10.
- È stata impostata una password di root sul tuo server.
Per iniziare
Prima di iniziare, dovrai aggiornare il tuo sistema con l'ultima versione. Puoi farlo eseguendo il seguente comando:
apt-get update -y
apt-get upgrade -y
Una volta aggiornato il server, riavvia il server per applicare le modifiche.
Installazione di Java
GlassFish richiede l'installazione di Java versione 8 sul tuo server. Quindi, dovrai rimuovere Java se hai altre versioni Java installate sul tuo sistema.
Puoi rimuovere Java versione 11 con il seguente comando:
apt-get remove openjdk-11-jre-headless
Successivamente, dovrai scaricare la versione 8 di Java dal loro sito Web ufficiale. Una volta completato il download, estrai il file scaricato nella directory /usr/lib/jvm con il seguente comando:
mkdir /usr/lib/jvm/
tar -zxvf jdk-8u221-linux-x64.tar.gz -C /usr/lib/jvm/
Quindi, imposta la versione Java predefinita con il seguente comando:
update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_221/bin/java 1
Dovresti ottenere il seguente output:
update-alternatives: using /usr/lib/jvm/jdk1.8.0_221/bin/java to provide /usr/bin/java (java) in auto mode
Ora puoi controllare la versione java con il seguente comando:
java -version
Dovresti vedere il seguente output:
java version "1.8.0_221" Java(TM) SE Runtime Environment (build 1.8.0_221-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
Installa GlassFish
Innanzitutto, installa i pacchetti richiesti con il seguente comando:
apt-get install wget unzip -y
Quindi, scarica l'ultima versione di GlassFish con il seguente comando:
wget http://download.oracle.com/glassfish/5.0.1/nightly/latest-glassfish.zip
Una volta completato il download, estrai il file scaricato nella directory /opt utilizzando il seguente comando:
unzip latest-glassfish.zip -d /opt/
Una volta terminato, puoi procedere al passaggio successivo.
Crea un servizio GlassFish
Successivamente, puoi creare un file di servizio systemd per gestire il servizio GlassFish. Puoi crearlo con il seguente comando:
nano /etc/systemd/system/glassfish.service
Aggiungi il seguente contenuto:
[Unit] Description = GlassFish Server v5.0 After = syslog.target network.target [Service] ExecStart=/opt/glassfish5/bin/asadmin start-domain ExecReload=/opt/glassfish5/bin/asadmin restart-domain ExecStop=/opt/glassfish5/bin/asadmin stop-domain Type = forking [Install] WantedBy = multi-user.target
Salva e chiudi il file. Quindi, ricarica il demone systemd con il seguente comando:
systemctl daemon-reload
Quindi, avvia il servizio GlassFish e abilitalo all'avvio all'avvio con il seguente comando:
systemctl start glassfish
systemctl enable glassfish
Ora puoi controllare lo stato del servizio GlassFish con il seguente comando:
systemctl status glassfish
Dovresti ottenere il seguente output:
? glassfish.service - GlassFish Server v5.0 Loaded: loaded (/etc/systemd/system/glassfish.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2019-09-19 04:54:25 EDT; 42s ago Process: 15205 ExecStart=/opt/glassfish5/bin/asadmin start-domain (code=exited, status=0/SUCCESS) Main PID: 15217 (java) Tasks: 90 (limit: 1138) Memory: 271.7M CGroup: /system.slice/glassfish.service ??15217 /usr/lib/jvm/jdk1.8.0_221/bin/java -cp /opt/glassfish5/glassfish/modules/glassfish.jar -XX:+UnlockDiagnosticVMOptions -XX:Ne Sep 19 04:53:42 debian systemd[1]: Starting GlassFish Server v5.0... Sep 19 04:54:24 debian asadmin[15205]: Waiting for domain1 to start ................................. Sep 19 04:54:24 debian asadmin[15205]: Successfully started the domain : domain1 Sep 19 04:54:24 debian asadmin[15205]: domain Location: /opt/glassfish5/glassfish/domains/domain1 Sep 19 04:54:24 debian asadmin[15205]: Log File: /opt/glassfish5/glassfish/domains/domain1/logs/server.log Sep 19 04:54:24 debian asadmin[15205]: Admin Port: 4848 Sep 19 04:54:24 debian asadmin[15205]: Command start-domain executed successfully. Sep 19 04:54:25 debian systemd[1]: Started GlassFish Server v5.0. lines 1-18/18 (END)
Abilita la Console di amministrazione GlassFish
Per impostazione predefinita, la password della console di amministrazione di GlassFish non è impostata. Quindi, dovrai aggiornare la password dell'amministratore.
Esegui il comando seguente per impostare la password amministratore:
/opt/glassfish5/bin/asadmin change-admin-password
Fornisci la password desiderata e premi Invio. Una volta impostata la password, dovresti vedere il seguente output:
Enter admin user name [default: admin]>admin Enter the admin password> Enter the new admin password> Enter the new admin password again> Command change-admin-password executed successfully.
Successivamente, dovrai abilitare la funzione di amministrazione sicura. Puoi farlo con il seguente comando:
/opt/glassfish5/bin/asadmin enable-secure-admin
Fornisci il nome utente e la password dell'amministratore e premi Invio per abilitare l'amministratore sicuro come mostrato di seguito:
Enter admin user name> admin Enter admin password for user "admin"> You must restart all running servers for the change in secure admin to take effect. Command enable-secure-admin executed successfully.
Quindi, riavvia il servizio GlassFish per applicare le modifiche alla configurazione:
systemctl restart glassfish
Accedi a GlassFish
Per impostazione predefinita, l'applicazione GlassFish viene eseguita sulla porta 8080. Puoi accedervi visitando l'URL http://your-server-ip:8080. Dovresti vedere la seguente pagina:
La console di amministrazione di GlassFish funziona sulla porta 4848. Puoi accedervi visitando l'URL http://your-server-ip:4848. Dovresti vedere la pagina di accesso di GlassFish:
Fornisci il nome utente e la password dell'amministratore e fai clic su Accedi pulsante. Dovresti vedere la console di amministrazione di GlassFish nella schermata seguente:
Distribuisci applicazione su GlassFish
GlassFish è ora installato e configurato, è ora di distribuire l'applicazione di esempio su GlassFish.
Innanzitutto, scarica l'applicazione hello.war con il seguente comando:
wget https://github.com/dmatej/Glassfish/raw/master/v2/www/downloads/quickstart/hello.war
Quindi, distribuisci l'applicazione hello.war con il comando seguente:
/opt/glassfish5/bin/asadmin deploy hello.war
Dovresti vedere il seguente output:
Version: V3 Subject: CN=localhost, OU=GlassFish, O=Oracle Corporation, L=Santa Clara, ST=California, C=US Signature Algorithm: SHA256withRSA, OID = 1.2.840.113549.1.1.11 Key: Sun RSA public key, 2048 bits modulus: 26796330640308027923768800042502020134808966576745098232029910481655545436468207928921434907495986430069072245547607053010428717755932187048623252153613041636091429700133899537566912806297788375081359516836091002133743138757261794690981737280330851500902934286405305506594303276580413684625941149729611614458782091187522283499926880436357851913036137048969953439207474630152049712806975982901461106170366207997764866053158318707816771263261147284707875045634066423002500565550480728681743613266266732299458152358213914375115269066441015633123820868476095174900081535873996509058837674720310526766610294764426209317187 public exponent: 65537 Validity: [From: Tue Jan 15 21:17:50 EST 2019, To: Fri Jan 12 21:17:50 EST 2029] Issuer: CN=localhost, OU=GlassFish, O=Oracle Corporation, L=Santa Clara, ST=California, C=US SerialNumber: [ 3347569f] Certificate Extensions: 1 [1]: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: F2 F1 22 14 40 CA 9E 1D 92 3B B6 B9 09 D1 27 E7 .."[email protected];....'. 0010: 50 1A 37 4D P.7M ] ] ] Algorithm: [SHA256withRSA] Signature: 0000: C7 CB 91 D4 9B 39 21 13 B3 48 87 09 85 2E DF B7 .....9!..H...... 0010: F9 E7 52 1B 39 D0 12 55 97 A8 02 8D B9 EC 26 F0 ..R.9..U......&. 0020: A6 8F 29 5B 96 80 71 AA CB C8 EA 83 4F 18 E7 19 ..)[..q.....O... 0030: 26 CF BF 72 B1 E6 23 53 F2 14 CD BA 68 FE 4B 4C &..r..#S....h.KL 0040: BB B1 3E DE D9 EB 6D 96 8C 8F 0D 33 B6 E7 28 F1 ..>...m....3..(. 0050: D5 40 6B BC 01 FF F9 5A 79 9A 96 DA D9 2A 84 99 [email protected]*.. 0060: FA 3A 7A 9D 52 6C C2 D5 E9 DC 98 8B 20 EF 69 99 .:z.Rl...... .i. 0070: E6 FC 1B 0F CA B2 0C 66 BE BB A7 EA 3D DB BB F5 .......f....=... 0080: 88 F1 B4 B1 15 74 FA 9F E0 9A 98 C5 12 A0 60 B4 .....t........`. 0090: 9B 92 19 FD BA 81 20 7F 51 83 E9 22 56 96 9A 40 ...... .Q.."[email protected] 00A0: 2C 27 BB 86 57 7D 2E E9 C5 98 1A 04 A2 C5 FC 17 ,'..W........... 00B0: 6E 8B 31 79 29 A0 A1 22 1A 31 C0 A6 96 7A D4 80 n.1y)..".1...z.. 00C0: 3F 05 26 BB DE D1 2D 74 01 1F 24 EC CE 3B 97 42 ?.&...-t..$..;.B 00D0: 16 E8 16 F1 A4 10 92 0B 8E A5 18 59 BF AA 69 B0 ...........Y..i. 00E0: DB C8 C2 66 5F 5D 2F 3D 4B C7 90 1D C2 24 B1 57 ...f_]/=K....$.W 00F0: 22 02 DA 76 FF 2E B7 C5 E4 E6 50 BD 73 36 AA 8A "..v......P.s6.. ] Do you trust the above certificate [y|N] -->y Enter admin user name> admin Enter admin password for user "admin"> Application deployed with name hello. Command deploy executed successfully.
Per accedere alla tua applicazione, apri il tuo browser web e digita l'URL http://your-server-ip:8080/hello. Verrai reindirizzato alla seguente pagina:
Configura Nginx come proxy inverso
Ora dovrai configurare Nginx come proxy inverso per la richiesta proxy in arrivo sulla porta da 80 a 8080.
Innanzitutto, installa Nginx con il seguente comando:
apt-get install nginx -y
Una volta installato nginx, crea un file host virtuale Nginx per GlassFish con il seguente comando:
nano /etc/nginx/sites-available/glassfish.conf
Aggiungi le seguenti righe:
upstream glassfish { server 127.0.0.1:8080 weight=100 max_fails=5 fail_timeout=5; } server { listen 80; server_name example.com; 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://glassfish/hello/; } }
Salva e chiudi il file. Quindi, controlla Nginx per eventuali errori di sintassi con il seguente comando:
nginx -t
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
Quindi, abilita l'host virtuale Nginx e riavvia il servizio Nginx con il seguente comando:
ln -s /etc/nginx/sites-available/glassfish.conf /etc/nginx/sites-enabled/
systemctl restart nginx
Ora puoi accedere alla tua applicazione visitando l'URL http://example.com.
Congratulazioni! hai installato correttamente GlassFish con Nginx come proxy inverso su Debian 10. Ora puoi distribuire facilmente qualsiasi applicazione basata su Java sul tuo server.