GlassFish est un serveur d'applications open source utilisé pour déployer des applications Java. Il prend en charge différentes technologies basées sur Java, notamment JPA, JavaServer Faces, JMS, RMI, ainsi que de nombreuses autres technologies basées sur Java. Il fournit une interface Web ainsi qu'une interface de ligne de commande pour la gestion des applications Java et de leurs composants. GlassFish vous permet de créer des applications portables et évolutives qui peuvent être facilement intégrées aux technologies existantes.
Dans ce tutoriel, je vais vous montrer comment installer le serveur Glassfish avec Nginx en tant que reverse proxy sur Debian 11.
Prérequis
- Un serveur exécutant Debian 11.
- Un nom de domaine valide pointé vers l'adresse IP de votre serveur.
- Un mot de passe root est configuré sur le serveur.
Installer Java
Glassfish est un logiciel d'application basé sur Java, Java doit donc être installé sur votre serveur. S'il n'est pas installé, vous pouvez l'installer en exécutant la commande suivante :
apt-get install default-jdk unzip -y
Une fois Java installé, vous pouvez vérifier l'installation de Java à l'aide de la commande suivante :
java --version
Vous obtiendrez le résultat suivant :
openjdk 11.0.13 2021-10-19 OpenJDK Runtime Environment (build 11.0.13+8-post-Debian-1deb11u1) OpenJDK 64-Bit Server VM (build 11.0.13+8-post-Debian-1deb11u1, mixed mode, sharing)
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Télécharger Glassfish
Tout d'abord, vous devrez télécharger la dernière version de Glassfish à partir du site Web d'Eclipse. Vous pouvez le télécharger à l'aide de la commande wget comme indiqué ci-dessous :
wget https://download.eclipse.org/ee4j/glassfish/glassfish-6.1.0.zip
Une fois le téléchargement terminé, extrayez le fichier téléchargé dans le répertoire /opt :
unzip glassfish-6.1.0.zip -d /opt/
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Créer un fichier de service Systemd pour Glassfish
Ensuite, vous devrez créer un fichier de service systemd pour gérer le service Glassfish. Vous pouvez le créer à l'aide de la commande suivante :
nano /usr/lib/systemd/system/glassfish.service
Ajoutez les lignes suivantes :
[Unit] Description = GlassFish Server v6.1.0 After = syslog.target network.target [Service] User = root ExecStart = /usr/bin/java -jar /opt/glassfish6/glassfish/lib/client/appserver-cli.jar start-domain ExecStop = /usr/bin/java -jar /opt/glassfish6/glassfish/lib/client/appserver-cli.jar stop-domain ExecReload = /usr/bin/java -jar /opt/glassfish6/glassfish/lib/client/appserver-cli.jar restart-domain Type = forking [Install] WantedBy = multi-user.target
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, rechargez le démon systemd pour appliquer les modifications.
systemctl daemon-reload
Ensuite, démarrez le service Glassfish et activez-le au redémarrage du système :
systemctl start glassfish
systemctl enable glassfish
Vous pouvez également vérifier le service Glassfish à l'aide de la commande suivante :
systemctl status glassfish
Vous obtiendrez le résultat suivant :
? glassfish.service - GlassFish Server v6.1.0 Loaded: loaded (/lib/systemd/system/glassfish.service; disabled; vendor preset: enabled) Active: active (running) since Sun 2021-11-07 04:56:16 UTC; 8s ago Process: 6018 ExecStart=/usr/bin/java -jar /opt/glassfish6/glassfish/lib/client/appserver-cli.jar start-domain (code=exited, status=0/SUC> Main PID: 6037 (java) Tasks: 91 (limit: 4679) Memory: 343.0M CPU: 13.299s CGroup: /system.slice/glassfish.service ??6037 /usr/lib/jvm/java-11-openjdk-amd64/bin/java -cp /opt/glassfish6/glassfish/modules/glassfish.jar -XX:+UnlockDiagnosticVMOp> Nov 07 04:56:10 debian11 systemd[1]: Starting GlassFish Server v6.1.0... Nov 07 04:56:16 debian11 java[6018]: Waiting for domain1 to start ..... Nov 07 04:56:16 debian11 java[6018]: Successfully started the domain : domain1 Nov 07 04:56:16 debian11 java[6018]: domain Location: /opt/glassfish6/glassfish/domains/domain1 Nov 07 04:56:16 debian11 java[6018]: Log File: /opt/glassfish6/glassfish/domains/domain1/logs/server.log Nov 07 04:56:16 debian11 java[6018]: Admin Port: 4848 Nov 07 04:56:16 debian11 java[6018]: Command start-domain executed successfully. Nov 07 04:56:16 debian11 systemd[1]: Started GlassFish Server v6.1.0.
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Définir le mot de passe administrateur Glassfish
Par défaut, Glassfish est accessible sans mot de passe. C'est donc une bonne idée de le sécuriser en créant un mot de passe administrateur. Vous pouvez le faire en exécutant la commande suivante :
/opt/glassfish6/bin/asadmin --port 4848 change-admin-password
Il vous sera demandé de fournir le nom d'utilisateur de l'administrateur comme indiqué ci-dessous :
Enter admin user name [default: admin]>admin
Indiquez le nom d'utilisateur de l'administrateur par défaut et appuyez sur la touche Entrée. Il vous sera demandé de fournir le mot de passe administrateur existant :
Enter the admin password>
Appuyez simplement sur la touche Entrée. Il vous sera demandé de définir un nouveau mot de passe administrateur comme indiqué ci-dessous :
Définissez votre mot de passe sécurisé et appuyez sur Entrée. Vous obtiendrez le résultat suivant :
Command change-admin-password executed successfully.
Ensuite, il est également recommandé d'activer le HTTPS sur Glassfish. Vous pouvez le faire en exécutant la commande suivante :
/opt/glassfish6/bin/asadmin --port 4848 enable-secure-admin
Il vous sera demandé de fournir votre nom d'utilisateur et votre mot de passe d'administrateur pour activer le HTTPS :
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.
Enfin, redémarrez le service Glassfish pour appliquer les modifications :
systemctl restart glassfish
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Accéder à l'interface Web GlassFish
À ce stade, Glassfish est installé et fonctionne. Par défaut, l'interface Web Glassfish écoute sur le port 8080 pendant que l'interface d'administration écoute sur le port 4848 . Tout d'abord, accédez à l'interface Web de Glassfish à l'aide de l'URL http://your-server-ip:8080 . Vous devriez voir la page suivante :
Ensuite, accédez à l'interface d'administration de Glassfish en utilisant l'URL https://your-server-ip:4848 . Vous serez redirigé vers la page de connexion Glassfish :
Indiquez votre nom d'utilisateur et votre mot de passe d'administrateur et cliquez sur Connexion bouton. Vous devriez voir l'interface d'administration de Glassfish sur la page suivante :
Cliquez sur le serveur dans le volet de gauche, vous devriez voir l'écran suivant :
À partir de là, vous pouvez redémarrer, arrêter et afficher les journaux Glassfish.
Cliquez sur les nœuds dans le volet de gauche, vous devriez voir les informations du nœud Glassfish dans l'écran suivant :
Configurer Nginx en tant que proxy inverse pour Glassfish
C'est une bonne idée de configurer le Nginx en tant que proxy inverse pour accéder à l'interface Web de Glassfish. Vous pouvez donc accéder à votre application sans utiliser le port 8080 .
Pour ce faire, installez d'abord le package Nginx avec la commande suivante :
apt-get install nginx -y
Une fois installé, créez un fichier de configuration d'hôte virtuel Nginx à l'aide de la commande ci-dessous :
nano /etc/nginx/conf.d/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 glassfish.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 puis vérifiez le Nginx pour toute erreur de syntaxe en utilisant la commande suivante :
nginx -t
Si tout va bien, vous obtiendrez 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, redémarrez le service Nginx pour appliquer les modifications :
systemctl restart nginx
Vous pouvez également vérifier l'état du Nginx avec la commande suivante :
systemctl status nginx
Vous devriez obtenir le résultat suivant :
? 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 Sun 2021-11-07 05:02:58 UTC; 22s ago Docs: man:nginx(8) Process: 6790 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 6791 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 6873 (nginx) Tasks: 3 (limit: 4679) Memory: 5.1M CPU: 53ms CGroup: /system.slice/nginx.service ??6873 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ??6875 nginx: worker process ??6876 nginx: worker process Nov 07 05:02:58 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server... Nov 07 05:02:58 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.
À ce stade, Nginx est installé et configuré pour servir l'interface Web Glassfish. Vous pouvez maintenant accéder à l'interface Web Glassfish en utilisant l'URL http://glassfish.example.com .
Conclusion
Toutes nos félicitations! vous avez installé avec succès le serveur Glassfish avec Nginx en tant que proxy inverse sur Debian 11. Vous pouvez maintenant commencer à déployer votre application basée sur Java sur le serveur Glassfish. N'hésitez pas à me demander si vous avez des questions.