So installierst du GlassFish Java Server mit Nginx als Reverse Proxy unter Debian 11

GlassFish ist ein Open-Source-Anwendungsserver, der für die Bereitstellung von Java-Anwendungen verwendet wird. Er unterstützt verschiedene Java-basierte Technologien wie JPA, JavaServer Faces, JMS, RMI und viele andere Java-basierte Technologien. Er bietet sowohl eine webbasierte als auch eine Befehlszeilenschnittstelle für die Verwaltung von Java-Anwendungen und deren Komponenten. Mit GlassFish kannst du portable und skalierbare Anwendungen erstellen, die sich problemlos in bestehende Technologien integrieren lassen.

In diesem Tutorium zeige ich dir, wie du den Glassfish-Server mit Nginx als Reverse Proxy auf Debian 11 installierst.

Voraussetzungen

  • Ein Server, auf dem Debian 11 läuft.
  • Ein gültiger Domainname, der auf die IP deines Servers zeigt.
  • Ein Root-Passwort ist auf dem Server konfiguriert.

Java installieren

Glassfish ist eine javabasierte Anwendungssoftware, daher muss Java auf deinem Server installiert sein. Wenn es nicht installiert ist, kannst du es mit folgendem Befehl installieren:

apt-get install default-jdk unzip -y

Sobald Java installiert ist, kannst du die Java-Installation mit folgendem Befehl überprüfen:

java --version

Du erhältst die folgende Ausgabe:

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)

Wenn du fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Glassfish herunterladen

Zuerst musst du die neueste Version von Glassfish von der Eclipse-Website herunterladen. Du kannst sie mit dem Befehl wget herunterladen (siehe unten):

wget https://download.eclipse.org/ee4j/glassfish/glassfish-6.1.0.zip

Sobald der Download abgeschlossen ist, entpackst du die heruntergeladene Datei in das Verzeichnis /opt:

unzip glassfish-6.1.0.zip -d /opt/

Wenn du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Eine Systemd-Dienstdatei für Glassfish erstellen

Als Nächstes musst du eine systemd-Dienstdatei für die Verwaltung des Glassfish-Dienstes erstellen. Du kannst sie mit dem folgenden Befehl erstellen:

nano /usr/lib/systemd/system/glassfish.service

Füge die folgenden Zeilen ein:

[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

Speichere und schließe die Datei, wenn du fertig bist. Lade dann den systemd-Daemon neu, um die Änderungen zu übernehmen.

systemctl daemon-reload

Als nächstes startest du den Glassfish-Dienst und aktivierst ihn beim Neustart des Systems:

systemctl start glassfish
systemctl enable glassfish

Du kannst den Glassfish-Dienst auch mit dem folgenden Befehl überprüfen:

systemctl status glassfish

Du erhältst die folgende Ausgabe:

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

Wenn du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Glassfish Admin-Passwort festlegen

In der Standardeinstellung ist Glassfish ohne Passwort zugänglich. Deshalb ist es ratsam, ein Admin-Passwort einzurichten, um es zu schützen. Dazu kannst du den folgenden Befehl ausführen:

/opt/glassfish6/bin/asadmin --port 4848 change-admin-password

Du wirst aufgefordert, den Admin-Benutzernamen einzugeben (siehe unten):

Enter admin user name [default: admin]>admin

Gib den Standard-Benutzernamen admin ein und drücke die Eingabetaste. Du wirst aufgefordert, das bestehende Admin-Passwort einzugeben:

Enter the admin password> 

Drücke einfach die Eingabetaste. Du wirst aufgefordert, ein neues Admin-Passwort festzulegen (siehe unten):

Gib das neue Admin-Passwort ein> Gib das neue Admin-Passwort erneut ein>

Lege dein sicheres Passwort fest und drücke die Eingabetaste. Du wirst die folgende Ausgabe erhalten:

Command change-admin-password executed successfully.

Als Nächstes ist es empfehlenswert, HTTPS auf Glassfish zu aktivieren. Dazu kannst du den folgenden Befehl ausführen:

/opt/glassfish6/bin/asadmin --port 4848 enable-secure-admin

Du wirst aufgefordert, deinen Admin-Benutzernamen und dein Passwort einzugeben, um HTTPS zu aktivieren:

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.

Starte abschließend den Glassfish-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart glassfish

Wenn du fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Zugriff auf das GlassFish-Webinterface

Zu diesem Zeitpunkt ist Glassfish installiert und läuft. Das Glassfish-Webinterface lauscht standardmäßig auf Port 8080, während das Admin-Interface auf Port 4848 lauscht. Rufe zunächst die Glassfish-Weboberfläche über die URL http://your-server-ip:8080 auf. Du solltest die folgende Seite sehen:

Der GlassFish Server läuft

Als Nächstes rufst du die Glassfish-Administrationsoberfläche über die URL https://your-server-ip:4848 auf. Du wirst auf die Glassfish-Anmeldeseite weitergeleitet:

GlassFish Anmeldung

Gib deinen Admin-Benutzernamen und dein Passwort ein und klicke auf die Schaltfläche Login. Auf der folgenden Seite solltest du die Glassfish-Admin-Oberfläche sehen:

GlassFish Dashboard

Klicke auf den Server im linken Bereich und du solltest den folgenden Bildschirm sehen:

Allgemeine Serverinformationen

Von hier aus kannst du Glassfish neu starten, anhalten und die Protokolle einsehen.

Wenn du im linken Bereich auf die Knoten klickst, solltest du die Glassfish-Knoteninformationen auf dem folgenden Bildschirm sehen:

Knotenpunkte

Nginx als Reverse Proxy für Glassfish konfigurieren

Es ist eine gute Idee, Nginx als Reverse Proxy für den Zugriff auf die Glassfish-Weboberfläche zu konfigurieren. So kannst du auf deine Anwendung zugreifen, ohne Port 8080 zu benutzen.

Dazu installierst du zunächst das Nginx-Paket mit dem folgenden Befehl:

apt-get install nginx -y

Nach der Installation erstellst du eine Konfigurationsdatei für den virtuellen Nginx-Host mit dem folgenden Befehl:

nano /etc/nginx/conf.d/glassfish.conf

Füge die folgenden Zeilen ein:

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

Speichere und schließe die Datei und überprüfe Nginx mit dem folgenden Befehl auf Syntaxfehler:

nginx -t

Wenn alles in Ordnung ist, erhältst du die folgende Ausgabe:

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

Starte als Nächstes den Nginx-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart nginx

Du kannst den Status von Nginx auch mit dem folgenden Befehl überprüfen:

systemctl status nginx

Du solltest die folgende Ausgabe erhalten:

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

Jetzt ist Nginx installiert und so konfiguriert, dass es die Glassfish-Weboberfläche bedient. Du kannst nun die Glassfish-Weboberfläche über die URL http://glassfish.example.com aufrufen.

Fazit

Herzlichen Glückwunsch! Du hast den Glassfish-Server mit Nginx als Reverse Proxy unter Debian 11 erfolgreich installiert. Du kannst jetzt damit beginnen, deine Java-basierte Anwendung auf dem Glassfish-Server zu installieren. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.

Das könnte dich auch interessieren …