GlassFish est une implémentation open-source et la première mondiale de la plate-forme Java développée par Eclipse Foundation. Il s'agit d'un serveur d'applications léger qui prend en charge différentes technologies basées sur Java telles que Enterprise JavaBeans, JPA, JavaServer Faces, JMS et bien d'autres. GlassFish est livré avec une console d'administration simple et facile à utiliser avec un outil de mise à jour pour les mises à jour et les composants complémentaires.
Dans ce tutoriel, nous expliquerons comment installer GlassFish sur Debian 10 avec Nginx comme proxy inverse.
Exigences
- Un serveur exécutant Debian 10.
- Un mot de passe root est configuré sur votre serveur.
Mise en route
Avant de commencer, vous devrez mettre à jour votre système avec la dernière version. Vous pouvez le faire en exécutant la commande suivante :
apt-get update -y
apt-get upgrade -y
Une fois votre serveur mis à jour, redémarrez votre serveur pour appliquer les modifications.
Installation de Java
GlassFish nécessite l'installation de la version 8 de Java sur votre serveur. Vous devrez donc supprimer Java si une autre version de Java est installée sur votre système.
Vous pouvez supprimer la version 11 de Java avec la commande suivante :
apt-get remove openjdk-11-jre-headless
Ensuite, vous devrez télécharger la version 8 de Java depuis leur site officiel. Une fois le téléchargement terminé, extrayez le fichier téléchargé dans le répertoire /usr/lib/jvm avec la commande suivante :
mkdir /usr/lib/jvm/
tar -zxvf jdk-8u221-linux-x64.tar.gz -C /usr/lib/jvm/
Ensuite, définissez la version Java par défaut avec la commande suivante :
update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_221/bin/java 1
Vous devriez obtenir le résultat suivant :
update-alternatives: using /usr/lib/jvm/jdk1.8.0_221/bin/java to provide /usr/bin/java (java) in auto mode
Vous pouvez maintenant vérifier la version Java avec la commande suivante :
java -version
Vous devriez voir le résultat suivant :
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)
Installer GlassFish
Tout d'abord, installez les packages requis avec la commande suivante :
apt-get install wget unzip -y
Ensuite, téléchargez la dernière version de GlassFish avec la commande suivante :
wget http://download.oracle.com/glassfish/5.0.1/nightly/latest-glassfish.zip
Une fois le téléchargement terminé, extrayez le fichier téléchargé dans le répertoire /opt à l'aide de la commande suivante :
unzip latest-glassfish.zip -d /opt/
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Créer un service GlassFish
Ensuite, vous pouvez créer un fichier de service systemd pour gérer le service GlassFish. Vous pouvez le créer avec la commande suivante :
nano /etc/systemd/system/glassfish.service
Ajoutez le contenu suivant :
[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
Enregistrez et fermez le fichier. Ensuite, rechargez le démon systemd avec la commande suivante :
systemctl daemon-reload
Ensuite, démarrez le service GlassFish et activez-le au démarrage avec la commande suivante :
systemctl start glassfish
systemctl enable glassfish
Vous pouvez maintenant vérifier l'état du service GlassFish avec la commande suivante :
systemctl status glassfish
Vous devriez obtenir le résultat suivant :
? 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)
Activer la console d'administration GlassFish
Par défaut, le mot de passe de la console d'administration GlassFish n'est pas défini. Vous devrez donc mettre à jour le mot de passe administrateur.
Exécutez la commande suivante pour définir le mot de passe administrateur :
/opt/glassfish5/bin/asadmin change-admin-password
Fournissez votre mot de passe souhaité et appuyez sur Entrée. Une fois le mot de passe défini, vous devriez voir le résultat suivant :
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.
Ensuite, vous devrez activer la fonction d'administration sécurisée. Vous pouvez le faire avec la commande suivante :
/opt/glassfish5/bin/asadmin enable-secure-admin
Fournissez votre nom d'utilisateur et votre mot de passe d'administrateur, puis appuyez sur Entrée pour activer l'administrateur sécurisé comme indiqué ci-dessous :
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.
Ensuite, redémarrez le service GlassFish pour appliquer les modifications de configuration :
systemctl restart glassfish
Accéder à GlassFish
Par défaut, l'application GlassFish s'exécute sur le port 8080. Vous pouvez y accéder en visitant l'URL http://your-server-ip:8080. Vous devriez voir la page suivante :
La console d'administration GlassFish s'exécute sur le port 4848. Vous pouvez y accéder en visitant l'URL http://your-server-ip:4848. Vous devriez voir la page de connexion GlassFish :
Indiquez votre nom d'utilisateur et votre mot de passe d'administrateur, puis cliquez sur Connexion bouton. Vous devriez voir la console d'administration GlassFish dans l'écran suivant :
Déployer l'application sur GlassFish
GlassFish est maintenant installé et configuré, il est temps de déployer un exemple d'application sur GlassFish.
Tout d'abord, téléchargez l'application hello.war avec la commande suivante :
wget https://github.com/dmatej/Glassfish/raw/master/v2/www/downloads/quickstart/hello.war
Ensuite, déployez l'application hello.war avec la commande suivante :
/opt/glassfish5/bin/asadmin deploy hello.war
Vous devriez voir le résultat suivant :
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.
Pour accéder à votre application, ouvrez votre navigateur Web et saisissez l'URL http://your-server-ip:8080/hello. Vous serez redirigé vers la page suivante :
Configurer Nginx en tant que proxy inverse
Maintenant, vous devrez configurer Nginx en tant que proxy inverse pour la demande de proxy provenant des ports 80 à 8080.
Tout d'abord, installez Nginx avec la commande suivante :
apt-get install nginx -y
Une fois le nginx installé, créez un fichier d'hôte virtuel Nginx pour GlassFish avec la commande suivante :
nano /etc/nginx/sites-available/glassfish.conf
Ajoutez les lignes suivantes :
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/; } }
Enregistrez et fermez le fichier. Ensuite, vérifiez Nginx pour toute erreur de syntaxe avec la commande suivante :
nginx -t
Vous devriez obtenir le résultat suivant :
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Ensuite, activez l'hôte virtuel Nginx et redémarrez le service Nginx avec la commande suivante :
ln -s /etc/nginx/sites-available/glassfish.conf /etc/nginx/sites-enabled/
systemctl restart nginx
Vous pouvez maintenant accéder à votre application en visitant l'URL http://example.com.
Toutes nos félicitations! vous avez installé avec succès GlassFish avec Nginx en tant que proxy inverse sur Debian 10. Vous pouvez désormais déployer facilement n'importe quelle application Java sur votre serveur.