VDS-Server per SSH verbinden: PuTTY, Terminal & Schlüssel
SSH-Verbindung zum Linux VDS-Server: PuTTY, Terminal, schlüsselbasierte Authentifizierung, Path Panel Firewall-Regel und Sicherheitstipps für Einsteiger.
Nginx und Apache Webserver installieren und konfigurieren, Stärken vergleichen, Virtual Hosts einrichten, SSL/TLS konfigurieren und Webdienste unter Linux verwalten.
Nginx und Apache sind die zwei meistgenutzten Webserver weltweit. Beide können Webanwendungen, statische Dateien bereitstellen und als Reverse Proxy auf Linux-Servern fungieren. Dieser Leitfaden behandelt Installation, Grundkonfiguration und Virtual Host-Einrichtung für beide.
| Merkmal | Nginx | Apache |
|---|---|---|
| Architektur | Asynchron, event-driven | Prozess/Thread-basiert |
| Statische Dateien | Sehr schnell | Langsamer |
| Dynamischer Inhalt | Reverse Proxy erforderlich | Eingebaute Module |
| Speichernutzung | Gering | Höher |
| Konfiguration | Einfacher | .htaccess-Unterstützung |
| Beste Verwendung | Hochfrequentierte Seiten | PHP-Anwendungen |
Wählen Sie Nginx für hochfrequentierte statische Inhalte oder Reverse Proxy; wählen Sie Apache für PHP-basierte Anwendungen (WordPress, Laravel). Beide können auch zusammen verwendet werden: Nginx als Front-End Reverse Proxy, Apache als Back-End Anwendungsserver.
# Paketliste aktualisieren
sudo apt update
# Nginx installieren
sudo apt install nginx -y
# Dienst starten und aktivieren
sudo systemctl start nginx
sudo systemctl enable nginx
# Status prüfen
sudo systemctl status nginx
# EPEL-Repository hinzufügen
sudo dnf install epel-release -y
# Nginx installieren
sudo dnf install nginx -y
# Dienst starten und aktivieren
sudo systemctl start nginx
sudo systemctl enable nginx
# Konfiguration testen
sudo nginx -t
# Konfiguration neu laden (kein Ausfall)
sudo systemctl reload nginx
# Dienst neu starten
sudo systemctl restart nginx
# Nginx-Version anzeigen
nginx -v
In Nginx wird für jede Website eine separate Konfigurationsdatei unter /etc/nginx/sites-available/ erstellt.
# Konfigurationsdatei erstellen
sudo nano /etc/nginx/sites-available/example.com
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
root /var/www/example.com/html;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ =404;
}
# Für PHP-FPM
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
# Zugriff auf versteckte Dateien blockieren
location ~ /\.ht {
deny all;
}
# Log-Dateien
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
}
# Website aktivieren
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
# Web-Verzeichnis erstellen
sudo mkdir -p /var/www/example.com/html
sudo chown -R www-data:www-data /var/www/example.com
# Testen und neu laden
sudo nginx -t && sudo systemctl reload nginx
server {
listen 80;
server_name app.example.com;
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_cache_bypass $http_upgrade;
}
}
# Apache installieren
sudo apt update
sudo apt install apache2 -y
# Dienst starten und aktivieren
sudo systemctl start apache2
sudo systemctl enable apache2
# Status prüfen
sudo systemctl status apache2
# Apache (httpd) installieren
sudo dnf install httpd -y
# Dienst starten und aktivieren
sudo systemctl start httpd
sudo systemctl enable httpd
# Konfiguration testen
sudo apachectl configtest
# Konfiguration neu laden
sudo systemctl reload apache2
# Module aktivieren
sudo a2enmod rewrite
sudo a2enmod ssl
# Sites aktivieren/deaktivieren
sudo a2ensite example.com
sudo a2dissite 000-default
# Konfigurationsdatei erstellen
sudo nano /etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/html
<Directory /var/www/example.com/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
</VirtualHost>
# Web-Verzeichnis erstellen
sudo mkdir -p /var/www/example.com/html
sudo chown -R www-data:www-data /var/www/example.com
# Site aktivieren
sudo a2ensite example.com.conf
# Testen und neu laden
sudo apachectl configtest && sudo systemctl reload apache2
Verwenden Sie Certbot für ein kostenloses SSL-Zertifikat:
# Certbot installieren
sudo apt install certbot -y
# Für Nginx
sudo apt install python3-certbot-nginx -y
sudo certbot --nginx -d example.com -d www.example.com
# Für Apache
sudo apt install python3-certbot-apache -y
sudo certbot --apache -d example.com -d www.example.com
# Automatische Erneuerung testen
sudo certbot renew --dry-run
server {
listen 443 ssl http2;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
root /var/www/example.com/html;
index index.html;
}
# HTTP zu HTTPS umleiten
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}
# HTTP und HTTPS mit ufw erlauben
sudo ufw allow 'Nginx Full'
# oder
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Für Apache
sudo ufw allow 'Apache Full'
Vergessen Sie auf REXE-Servern nicht, HTTP (80) und HTTPS (443) Ports auch in der Path Panel Firewall zu öffnen.
Nginx und Apache sind leistungsstarke Webserver für unterschiedliche Anwendungsfälle. Nginx ist ideal für hochleistungsfähige statische Inhalte und Reverse Proxy, während Apache für PHP-Anwendungen und .htaccess-basierte Konfigurationen bevorzugt wird. Mit Virtual Host-Konfiguration auf beiden Servern können mehrere Domains auf demselben Server gehostet werden.
Nginx bietet bessere Leistung für hochfrequentierte Seiten, statische Inhalte oder Reverse Proxy. Apache ist einfacher für PHP-Anwendungen wie WordPress und Laravel zu konfigurieren (mit .htaccess-Unterstützung). Beide zusammen zu verwenden ist ebenfalls möglich: Nginx vorne, Apache hinten.
Dies geschieht mit Virtual Host-Konfiguration. In Nginx erstellen Sie für jede Domain eine separate Datei unter /etc/nginx/sites-available/ und fügen einen Symlink zu sites-enabled hinzu. In Apache erstellen Sie eine .conf-Datei unter /etc/apache2/sites-available/ und aktivieren sie mit a2ensite.
Sie können ein kostenloses SSL-Zertifikat mit Let's Encrypt erhalten. Installieren Sie Certbot: 'sudo apt install certbot python3-certbot-nginx -y'. Führen Sie dann 'sudo certbot --nginx -d example.com' aus, um das Zertifikat automatisch zu installieren und zu konfigurieren. Zertifikate werden alle 90 Tage automatisch erneuert.
Der Befehl 'sudo nginx -t' testet Konfigurationsdateien und zeigt Fehler an. Lesen Sie die Fehlermeldung sorgfältig; sie gibt normalerweise Dateiname und Zeilennummer an. Sie können auch Dienstprotokolle mit 'sudo journalctl -u nginx' prüfen.
SSH-Verbindung zum Linux VDS-Server: PuTTY, Terminal, schlüsselbasierte Authentifizierung, Path Panel Firewall-Regel und Sicherheitstipps für Einsteiger.
Schritt-für-Schritt-Anleitung zur RDP-Verbindung mit Windows Server VDS: Einrichtung, NLA-Sicherheit, Path Panel Firewall-Regel und Fehlerbehebung.
Betriebssystemwechsel am VDS-Server über das REXE-Panel: Backup-Tipps, unterstützte Linux-Distributionen und Windows Server Versionen im Überblick.