Application Server auf Ubuntu 24.04 einrichten und konfigurieren
Die Installation und Konfiguration eines Application Servers auf Ubuntu 24.04 ist ein zentraler Schritt, wenn Webanwendungen für den produktiven Einsatz vorbereitet werden. Ganz gleich, ob Node.js-Anwendungen, Python-basierte Webservices oder PHP-Websites betrieben werden sollen: Ein sauber eingerichteter Application Server bildet die stabile, sichere und skalierbare Grundlage für das Deployment.
Diese Anleitung zeigt, wie ein produktionsreifer Application Server auf einem Ubuntu-24.04-Server vorbereitet wird. Dabei werden zentrale Komponenten installiert und konfiguriert, Nginx als Reverse Proxy eingerichtet, der Server mit SSL-Zertifikaten abgesichert und Anwendungen über systemd verwaltet. Die Konfiguration orientiert sich an bewährten Vorgehensweisen für den produktiven Betrieb, damit der Server reale Workloads zuverlässig verarbeiten kann.
Wichtige Punkte im Überblick
- Richten Sie einen produktionsbereiten Application Server auf Ubuntu 24.04 auf einem cloudbasierten oder virtuellen Server ein.
- Konfigurieren Sie Nginx als Reverse Proxy, um eingehende Anfragen anzunehmen und an Ihre Anwendungen weiterzuleiten.
- Aktivieren Sie SSL/TLS-Verschlüsselung mit Let’s Encrypt, um Client-Verbindungen abzusichern.
- Stellen Sie Anwendungen mit
systemdbereit und verwalten Sie diese zuverlässig als Dienste. - Verbessern Sie die Sicherheit durch Firewall-Regeln, passende Berechtigungen und weitere Hardening-Maßnahmen.
- Unterstützen Sie verschiedene Anwendungstypen, darunter Node.js-, Python- und PHP-Anwendungen.
Voraussetzungen
Bevor Sie beginnen, sollten folgende Voraussetzungen erfüllt sein:
- Ein Server mit Ubuntu 24.04. Auf diesem Server sollte bereits ein Nicht-Root-Benutzer mit sudo-Rechten eingerichtet sein. Außerdem sollte eine grundlegende Firewall-Konfiguration vorhanden sein.
- Ein Domainname, der auf die IP-Adresse Ihres Servers verweist.
- Grundkenntnisse in der Linux-Kommandozeile sowie SSH-Zugriff auf den Server.
Schritt 1 — Systempakete aktualisieren
Aktualisieren Sie zuerst den Paketindex und führen Sie ein Upgrade der installierten Pakete durch. Dadurch nutzt der Server aktuelle Paketinformationen, Sicherheitskorrekturen und Softwareversionen:
sudo apt update
sudo apt upgrade -y
Damit wird Ihr Ubuntu-24.04-Server mit den neuesten verfügbaren Sicherheitsupdates und Paketversionen versorgt. Ubuntu 24.04 enthält im Vergleich zu Ubuntu 22.04 neuere Versionen wichtiger Komponenten, darunter aktualisierte Ausgaben von systemd, Nginx und weiteren zentralen Systemwerkzeugen.
Schritt 2 — Nginx als Reverse Proxy installieren
Nginx kann als Reverse Proxy eingesetzt werden, der eingehende HTTP- und HTTPS-Anfragen entgegennimmt und an den eigentlichen Application Server weiterleitet. Dieser Aufbau bietet mehrere Vorteile, etwa SSL-Terminierung, mögliche Lastverteilung und zusätzliche Sicherheit, da die Anwendung selbst hinter dem Proxy betrieben wird.
Installieren Sie Nginx mit apt:
sudo apt install nginx -y
Starten Sie Nginx nach der Installation und aktivieren Sie den Dienst, damit er beim Systemstart automatisch geladen wird:
sudo systemctl start nginx
sudo systemctl enable nginx
Prüfen Sie anschließend, ob Nginx läuft:
sudo systemctl status nginx
Die Ausgabe sollte anzeigen, dass Nginx aktiv ist und ausgeführt wird.
Output
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: enabled)
Active: active (running) since Thu 2025-12-18 07:03:01 UTC; 32s ago
Docs: man:nginx(8)
Main PID: 46284 (nginx)
Tasks: 3 (limit: 4656)
Memory: 2.4M (peak: 5.3M)
CPU: 46ms
CGroup: /system.slice/nginx.service
├─46284 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
├─46286 "nginx: worker process"
└─46287 "nginx: worker process"
Dec 18 07:03:01 Ubuntu-24 systemd[1]: Starting nginx.service - A high performance web server and a reverse proxy server...
Dec 18 07:03:01 Ubuntu-24 systemd[1]: Started nginx.service - A high performance web server and a reverse proxy server.
Schritt 3 — Firewall konfigurieren
Ubuntu 24.04 verwendet häufig UFW, die Uncomplicated Firewall, zur Verwaltung von Firewall-Regeln. Konfigurieren Sie die Firewall so, dass HTTP-, HTTPS- und SSH-Verbindungen erlaubt sind, während nicht benötigte Ports blockiert bleiben.
Prüfen Sie zunächst, ob UFW installiert ist und welchen Status die Firewall aktuell hat:
sudo ufw status
Falls UFW noch nicht aktiv ist, erlauben Sie die benötigten Dienste und aktivieren Sie anschließend die Firewall:
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable
Output
sudo ufw allow 'Nginx Full'
sudo ufw enable
Rules updated
Rules updated (v6)
Rules updated
Rules updated (v6)
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Das Profil Nginx Full öffnet sowohl HTTP über Port 80 als auch HTTPS über Port 443. Überprüfen Sie danach die aktiven Firewall-Regeln:
sudo ufw status verbose
Sie sollten Regeln sehen, die Datenverkehr für OpenSSH und Nginx Full zulassen.
Output
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp (OpenSSH) ALLOW IN Anywhere
80,443/tcp (Nginx Full) ALLOW IN Anywhere
22/tcp (OpenSSH (v6)) ALLOW IN Anywhere (v6)
80,443/tcp (Nginx Full (v6)) ALLOW IN Anywhere (v6)
Schritt 4 — SSL mit Let’s Encrypt einrichten
SSL/TLS-Verschlüsselung ist für produktive Application Server unverzichtbar. Let’s Encrypt stellt kostenlose Zertifikate bereit, die automatisch verlängert werden können.
Installieren Sie Certbot zusammen mit dem Nginx-Plugin:
sudo apt install certbot python3-certbot-nginx -y
Fordern Sie anschließend ein SSL-Zertifikat für Ihre Domain an. Ersetzen Sie your_domain durch Ihren tatsächlichen Domainnamen:
sudo certbot --nginx -d your_domain -d www.your_domain
Certbot fragt nach einer E-Mail-Adresse und danach, ob HTTP-Verbindungen auf HTTPS umgeleitet werden sollen. Wählen Sie die Weiterleitung aus, um die Sicherheit zu erhöhen. Das Zertifikat wird anschließend so eingerichtet, dass es vor Ablauf automatisch erneuert werden kann.
Testen Sie den automatischen Verlängerungsprozess:
sudo certbot renew --dry-run
Wenn der Befehl ohne Fehler abgeschlossen wird, funktioniert die automatische Verlängerung korrekt.
Schritt 5 — Nginx als Reverse Proxy konfigurieren
Erstellen Sie einen Nginx-Serverblock, der den Datenverkehr an Ihren Application Server weiterleitet. Das folgende Beispiel verwendet eine allgemeine Konfiguration, die an verschiedene Anwendungstypen angepasst werden kann.
Erstellen Sie eine neue Konfigurationsdatei für Ihre Domain:
sudo nano /etc/nginx/sites-available/your_domain
Fügen Sie die folgende Konfiguration ein. Ersetzen Sie your_domain durch Ihre tatsächliche Domain und passen Sie das Ziel von proxy_pass an den Port Ihrer Anwendung an:
server {
listen 80;
listen [::]:80;
server_name your_domain www.your_domain;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name your_domain www.your_domain;
ssl_certificate /etc/letsencrypt/live/your_domain/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your_domain/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
}
Diese Konfiguration:
- leitet HTTP-Anfragen auf HTTPS um.
- übernimmt die SSL-Terminierung auf der Nginx-Ebene.
- leitet Anfragen an eine Anwendung weiter, die auf Port 3000 läuft. Dieser Port kann bei Bedarf geändert werden.
- stellt Client-IP-Adresse und Protokollinformationen weiterhin für die Anwendung bereit.
Aktivieren Sie die Konfiguration, indem Sie einen symbolischen Link erstellen:
sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
Prüfen Sie die Nginx-Konfiguration auf Syntaxfehler:
sudo nginx -t
Wenn der Test erfolgreich ist, laden Sie Nginx neu, damit die neue Konfiguration übernommen wird:
sudo systemctl reload nginx
Schritt 6 — Laufzeitabhängigkeiten für Anwendungen installieren
Welche Laufzeitpakete erforderlich sind, hängt vom Typ der Anwendung ab, die betrieben werden soll. Dieser Abschnitt behandelt Setups für Node.js-, Python- und PHP-Anwendungen.
Node.js installieren
Für Node.js-Anwendungen installieren Sie Node.js über das NodeSource-Repository, um die aktuelle LTS-Version zu verwenden:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
Überprüfen Sie die Installation:
node --version
npm --version
Output
v20.19.6
10.8.2
Python und pip installieren
Ubuntu 24.04 enthält standardmäßig Python 3.12. Installieren Sie pip sowie die Werkzeuge für virtuelle Umgebungen:
sudo apt install python3-pip python3-venv -y
Bestätigen Sie die installierten Versionen:
python3 --version
pip3 --version
Output
pip3 --version
Python 3.12.3
pip 24.0 from /usr/lib/python3/dist-packages/pip (python 3.12)
PHP und PHP-FPM installieren
Für PHP-Anwendungen installieren Sie PHP zusammen mit PHP-FPM, dem FastCGI Process Manager:
sudo apt install php-fpm php-mysql php-mbstring php-xml php-curl -y
Prüfen Sie, ob PHP-FPM ausgeführt wird:
sudo systemctl status php8.3-fpm
Output
Loaded: loaded (/usr/lib/systemd/system/php8.3-fpm.service; enabled; preset: enabled)
Active: active (running) since Thu 2025-12-18 08:02:36 UTC; 1min 56s ago
Docs: man:php-fpm8.3(8)
Process: 59077 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/8.3/fpm/pool.d/www.conf 83 (code=exited, >
Main PID: 59074 (php-fpm8.3)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
Tasks: 3 (limit: 4656)
Memory: 9.5M (peak: 10.4M)
CPU: 97ms
CGroup: /system.slice/php8.3-fpm.service
├─59074 "php-fpm: master process (/etc/php/8.3/fpm/php-fpm.conf)"
├─59075 "php-fpm: pool www"
└─59076 "php-fpm: pool www"
Dec 18 08:02:36 Ubuntu-24 systemd[1]: Starting php8.3-fpm.service - The PHP 8.3 FastCGI Process Manager...
Hinweis: Ubuntu 24.04 enthält PHP 8.3. Passen Sie Versionsnummern an, wenn Ihr System eine andere PHP-Version verwendet.
Schritt 7 — Systemd-Service für Ihre Anwendung erstellen
Systemd kann Ihre Anwendung als verwalteten Dienst ausführen. Dadurch kann die Anwendung beim Systemstart automatisch gestartet und bei einem Fehler neu gestartet werden. Das folgende Beispiel erstellt einen systemd-Service für eine Node.js-Anwendung, lässt sich aber auf andere Anwendungstypen übertragen.
Erstellen Sie eine systemd-Service-Datei:
sudo nano /etc/systemd/system/your-app.service
Fügen Sie die folgende Konfiguration ein und passen Sie Pfade, Benutzernamen und Umgebungsvariablen an Ihre Anwendung an:
[Unit]
Description=Your Application Server
After=network.target
[Service]
Type=simple
User=www-data
WorkingDirectory=/var/www/your-app
Environment="NODE_ENV=production"
Environment="PORT=3000"
ExecStart=/usr/bin/node /var/www/your-app/server.js
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
Wichtige Konfigurationspunkte:
- Type=simple: Geeignet für Anwendungen, die im Vordergrund laufen.
- User=www-data: Führt die Anwendung aus Sicherheitsgründen als Nicht-Root-Benutzer aus.
- WorkingDirectory: Legt das Arbeitsverzeichnis fest, aus dem die Anwendung gestartet wird.
- Restart=on-failure: Startet die Anwendung automatisch neu, wenn sie abstürzt.
- RestartSec=10: Wartet 10 Sekunden, bevor ein Neustart versucht wird.
Laden Sie systemd neu und starten Sie den Dienst:
sudo systemctl daemon-reload
sudo systemctl start your-app
sudo systemctl enable your-app
Prüfen Sie den Status des Dienstes:
sudo systemctl status your-app
Output
● your-app.service
Loaded: loaded (/etc/systemd/system/your-app.service; enabled; preset: enabled)
Active: active (running) since Thu 2025-12-18 08:07:30 UTC; 4ms ago
Main PID: 59408 ((node))
Tasks: 1 (limit: 4656)
Memory: 512.0K (peak: 512.0K)
CPU: 936us
CGroup: /system.slice/your-app.service
└─59408 "(node)"
Dec 18 08:07:30 Ubuntu-24 systemd[1]: your-app.service: Scheduled restart job, restart counter is at 4.
Dec 18 08:07:30 Ubuntu-24 systemd[1]: Started your-app.service.
Beispiel für eine Python-Anwendung
Für eine Python-Anwendung mit Gunicorn könnte der systemd-Service folgendermaßen aussehen:
[Unit]
Description=Your Python Application
After=network.target
[Service]
Type=notify
User=www-data
WorkingDirectory=/var/www/your-app
Environment="PATH=/var/www/your-app/venv/bin"
ExecStart=/var/www/your-app/venv/bin/gunicorn --bind 127.0.0.1:8000 app:app
Restart=on-failure
[Install]
WantedBy=multi-user.target
Beispiel für eine PHP-Anwendung
Für PHP-Anwendungen wird PHP-FPM in der Regel zusammen mit Nginx verwendet. Konfigurieren Sie Nginx so, dass PHP-Anfragen an PHP-FPM weitergegeben werden:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
}
Schritt 8 — Anwendung bereitstellen
Erstellen Sie ein Verzeichnis für die Anwendung und vergeben Sie passende Besitzrechte:
sudo mkdir -p /var/www/your-app
sudo chown -R www-data:www-data /var/www/your-app
Kopieren oder deployen Sie Ihre Anwendungsdateien in dieses Verzeichnis. Dafür können Sie Git, SCP oder eine andere Bereitstellungsmethode verwenden:
cd /var/www/your-app
sudo -u www-data git clone https://github.com/your-username/your-repo.git .
Installieren Sie Abhängigkeiten und bauen Sie die Anwendung bei Bedarf. Für Node.js:
sudo -u www-data npm install --production
Für Python:
sudo -u www-data python3 -m venv venv
sudo -u www-data ./venv/bin/pip install -r requirements.txt
Starten Sie nach Abschluss des Deployments den Anwendungsdienst neu:
sudo systemctl restart your-app
Schritt 9 — Best Practices für Production Hardening
Wenden Sie die folgenden Sicherheitsmaßnahmen an, um den Application Server besser für den produktiven Einsatz abzusichern.
Root-Login per SSH deaktivieren
Bearbeiten Sie die SSH-Konfiguration:
sudo nano /etc/ssh/sshd_config
Setzen Sie die folgenden Werte:
PermitRootLogin no
PasswordAuthentication no
Starten Sie SSH neu:
sudo systemctl restart sshd
Automatische Sicherheitsupdates konfigurieren
Aktivieren Sie automatische Sicherheitsupdates:
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure -plow unattended-upgrades
Logrotation einrichten
Richten Sie eine Logrotation ein, damit Logdateien nicht zu viel Speicherplatz belegen. Bearbeiten Sie dazu die logrotate-Konfiguration:
sudo nano /etc/logrotate.d/your-app
Fügen Sie die folgende Konfiguration hinzu:
/var/www/your-app/logs/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data www-data
sharedscripts
}
Speicherplatz überwachen
Richten Sie Monitoring ein, damit Sie bei knappem Speicherplatz benachrichtigt werden können. Installieren und konfigurieren Sie dafür Monitoring-Werkzeuge:
sudo apt install htop iotop -y
Schritt 10 — Häufige Probleme beheben
Dieser Abschnitt beschreibt typische Probleme, die beim Einrichten eines Application Servers auftreten können.
Anwendung startet nicht
Prüfen Sie den Dienststatus und die Logs:
sudo systemctl status your-app
sudo journalctl -u your-app -n 50 --no-pager
Häufige Ursachen sind:
- Falsche Dateipfade in der systemd-Service-Datei.
- Fehlende Umgebungsvariablen.
- Berechtigungsprobleme, insbesondere wenn der Dienstbenutzer nicht auf die Anwendungsdateien zugreifen kann.
Nginx-Fehler 502 Bad Gateway
Dieser Fehler bedeutet in der Regel, dass Nginx die Anwendung nicht erreichen kann. Prüfen Sie Folgendes:
Ihre Anwendung läuft:
sudo systemctl status your-app
Die Anwendung lauscht auf dem erwarteten Port:
sudo netstat -tlnp | grep 3000
Die proxy_pass-URL in Ihrer Nginx-Konfiguration muss zum Port Ihrer Anwendung passen.
Probleme mit SSL-Zertifikaten
Wenn SSL-Zertifikate nicht korrekt erneuert werden, prüfen Sie die folgenden Punkte:
Kontrollieren Sie die Certbot-Logs:
sudo tail -f /var/log/letsencrypt/letsencrypt.log
Stellen Sie sicher, dass die DNS-Einträge Ihrer Domain auf Ihren Server zeigen:
dig your_domain
Achten Sie außerdem darauf, dass die Ports 80 und 443 in der Firewall geöffnet sind.
Hoher Arbeitsspeicherverbrauch
Überwachen Sie die Speichernutzung:
free -h
htop
Wenn Ihre Anwendung zu viel Arbeitsspeicher verbraucht, sollten Sie Folgendes in Betracht ziehen:
- Optimierung des Anwendungscodes.
- Erhöhung des verfügbaren Arbeitsspeichers des Servers.
- Einführung von Caching auf Anwendungsebene.
Häufig gestellte Fragen
Was ist ein Application Server unter Ubuntu?
Ein Application Server ist eine Serverumgebung, die Webanwendungen ausführt und verwaltet. Unter Ubuntu 24.04 bedeutet dies üblicherweise, eine Laufzeitumgebung wie Node.js, Python oder PHP einzurichten, einen Reverse Proxy wie Nginx zu konfigurieren und Anwendungsprozesse über systemd zu verwalten. Der Application Server nimmt Anfragen entgegen, führt den Anwendungscode aus und sendet Antworten an die Clients zurück.
Wie konfiguriere ich systemd für meine Anwendung?
Um systemd für Ihre Anwendung zu konfigurieren, erstellen Sie eine Service-Datei. Das folgende Beispiel zeigt den Ablauf Schritt für Schritt.
Angenommen, Ihre Anwendung ist eine Node.js-App im Verzeichnis /home/ubuntu/my-app und soll mit npm start über den Benutzer ubuntu ausgeführt werden.
Erstellen Sie die systemd-Service-Datei:
sudo nano /etc/systemd/system/my-app.service
Fügen Sie den folgenden Inhalt in die Datei ein:
[Unit]
Description=My Node.js App
After=network.target
[Service]
Type=simple
User=ubuntu
WorkingDirectory=/home/ubuntu/my-app
ExecStart=/usr/bin/npm start
Restart=on-failure
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
Laden Sie systemd neu, damit der neue Dienst erkannt wird:
sudo systemctl daemon-reload
Aktivieren Sie den Dienst, damit er beim Systemstart automatisch startet:
sudo systemctl enable my-app
Starten Sie die Anwendung:
sudo systemctl start my-app
Ihre Anwendung läuft nun im Hintergrund, wird nach Fehlern neu gestartet und automatisch nach einem Reboot gestartet. Den Status prüfen Sie mit:
sudo systemctl status my-app
Diese Methode eignet sich für die meisten Anwendungen. Passen Sie ExecStart, User und WorkingDirectory entsprechend Ihrem Anwendungsszenario an.
Sollte ich Nginx oder Apache als Reverse Proxy verwenden?
Sowohl Nginx als auch Apache können zuverlässig als Reverse Proxy eingesetzt werden. Für moderne Application Server wird häufig Nginx bevorzugt, da es in der Regel weniger Arbeitsspeicher benötigt, bei vielen gleichzeitigen Verbindungen sehr leistungsfähig ist und für Reverse-Proxy-Szenarien eine übersichtliche Konfiguration bietet.
Nginx eignet sich außerdem gut für statische Inhalte und für das Weiterleiten von Anfragen an Application Server, weshalb es für produktive Deployments gut geeignet ist. Apache bleibt ebenfalls eine solide Wahl, insbesondere wenn bestimmte Module benötigt werden oder die Apache-Konfiguration bereits vertraut ist.
Wie sichere ich meinen Application Server unter Ubuntu 24.04 ab?
Sie können Ihren Application Server absichern, indem Sie die UFW-Firewall aktivieren und nur erforderliche Ports erlauben, SSL-Zertifikate mit Let’s Encrypt installieren, Anwendungen als Nicht-Root-Benutzer ausführen, den Root-SSH-Login deaktivieren, automatische Sicherheitsupdates aktivieren, Pakete aktuell halten und korrekte Dateiberechtigungen verwenden. Zusätzlich sollten starke Passwörter oder SSH-Schlüssel eingesetzt, fail2ban gegen Brute-Force-Versuche konfiguriert und Anwendungs- sowie Systemlogs regelmäßig auf verdächtige Aktivitäten geprüft werden.
Kann ich mehrere Anwendungen auf einem einzelnen Ubuntu-Server hosten?
Ja, auf einem einzelnen Ubuntu-24.04-Server können mehrere Anwendungen betrieben werden. Erstellen Sie für jede Anwendung einen separaten systemd-Service und lassen Sie jede Anwendung auf einem eigenen Port laufen, beispielsweise 3000, 3001 oder 8000. Anschließend richten Sie separate Nginx-Serverblöcke, auch Virtual Hosts genannt, für jede Domain oder Subdomain ein. Jeder Serverblock leitet Anfragen an den passenden Anwendungsport weiter. So lassen sich Serverressourcen effizient nutzen, während die Anwendungen voneinander getrennt bleiben.
Wie prüfe ich, ob meine Anwendung korrekt läuft?
Prüfen Sie, ob Ihre Anwendung läuft, indem Sie den systemd-Service-Status mit sudo systemctl status your-app abrufen. Die Anwendungslogs können Sie mit sudo journalctl -u your-app -f live verfolgen. Testen Sie die Anwendung außerdem über ihre Domain oder IP-Adresse. Kontrollieren Sie, ob Nginx Anfragen korrekt weiterleitet, indem Sie die Nginx-Zugriffs- und Fehlerlogs unter /var/log/nginx/access.log und /var/log/nginx/error.log prüfen. Überwachen Sie Ressourcen mit htop oder free -h, um sicherzustellen, dass die Anwendung nicht zu viel CPU oder Arbeitsspeicher verbraucht.
Fazit
Sie haben nun einen produktionsbereiten Application Server auf Ubuntu 24.04 eingerichtet und konfiguriert. Der Server nutzt Nginx als Reverse Proxy, SSL/TLS-Verschlüsselung, systemd-basiertes Service-Management und mehrere Sicherheitsmaßnahmen zur Härtung. Dieses Setup kann für die Bereitstellung von Node.js-, Python-, PHP- und weiteren Webanwendungen in einer sicheren und skalierbaren Umgebung verwendet werden.
Die Konfiguration folgt bewährten Vorgehensweisen für den Produktivbetrieb, darunter automatische Dienstneustarts, SSL-Zertifikatserneuerung, Firewall-Schutz und passende Benutzerrechte. Ihr Application Server ist damit auf reale Workloads vorbereitet und kann bei wachsenden Anforderungen erweitert werden.


