Benutzer-Werkzeuge

Webseiten-Werkzeuge


it-themen:grundlagen:netzwerkdienste:apache_ngnix

**Dies ist eine alte Version des Dokuments!**

zurĂĽck

Webserver – Apache & Nginx – Grundlagen

Ein Webserver stellt Webseiten, APIs oder Anwendungen bereit und liefert HTTP- bzw. HTTPS-Inhalte an Clients wie Browser oder Apps aus.

Die beiden bekanntesten Webserver sind:

  • Apache HTTP Server
  • Nginx (sprich: Engine-X)

Beide sind weit verbreitet, aber unterschiedlich aufgebaut und eingesetzt.

Aufgaben eines Webservers

  • Bereitstellen von Webseiten (HTML, CSS, JS)
  • Ausliefern von Bildern, Downloads, Dateien
  • AusfĂĽhren von Webanwendungen (PHP, Python, FastCGI)
  • HTTPS-VerschlĂĽsselung via TLS
  • Reverse Proxy fĂĽr Backend-Dienste
  • Weiterleitungen, Rewrite-Regeln
  • Logging von Zugriffen

Apache – Grundlagen

Apache ist modular aufgebaut und gilt als sehr flexibel.
Ideal, wenn viele Funktionen gebraucht werden.

Merkmale

  • Prozessbasiert (jeder Client erzeugt eigenen Prozess/Thread)
  • sehr flexibel dank vieler Module
  • traditionell fĂĽr PHP-Anwendungen (z. B. WordPress, Joomla)
  • gute .htaccess-UnterstĂĽtzung

Module (Beispiele):

  • mod_ssl – TLS/HTTPS
  • mod_rewrite – URL-Umschreibungen
  • mod_php – PHP direkt ausfĂĽhrbar

Standardverzeichnisse (Debian/Ubuntu)


 /etc/apache2/
 /var/www/html/


Konfigurationen:

  • /etc/apache2/sites-available/*.conf
  • aktivieren via:

 a2ensite sitename.conf
 systemctl reload apache2


Beispiel Virtual Host


 <VirtualHost *:80>
     ServerName example.com
     DocumentRoot /var/www/example
 </VirtualHost>


Nginx – Grundlagen

Nginx ist moderner, schlanker und extrem performant.
Er ist besonders gut geeignet als:

  • Reverse Proxy
  • Load Balancer
  • Webserver fĂĽr statische Dateien

Merkmale

  • ereignisbasiert (event-driven)
  • sehr ressourcenschonend
  • extrem leistungsfähig bei vielen Verbindungen
  • bevorzugt fĂĽr Microservices/Docker
  • PHP per FastCGI statt direkt

Standardverzeichnisse (Debian/Ubuntu)


 /etc/nginx/
 /var/www/html/


Aktivierung von Sites:


 ln -s /etc/nginx/sites-available/site.conf /etc/nginx/sites-enabled/
 nginx -t
 systemctl reload nginx


Beispiel Serverblock (Virtual Host)


 server {
     listen 80;
     server_name example.com;
     root /var/www/example;

     location / {
         try_files $uri $uri/ =404;
     }
 }


Apache vs. Nginx – Vergleich

Kategorie Apache Nginx
————————————————-——————————-
Architektur prozess-/threadbasiert event-driven
Geschwindigkeit mittel sehr hoch
Ressourcenbedarf höher sehr gering
PHP-UnterstĂĽtzung direkt via mod_php via PHP-FPM (FastCGI)
.htaccess unterstĂĽtzt nicht unterstĂĽtzt
guter Einsatzort klassische Webanwendungen Reverse Proxy, moderne Setups

Reverse Proxy – Beispiel Nginx

Nginx vor einem Backend (z. B. Docker-Service):


 location /api/ {
     proxy_pass http://localhost:8080/;
 }


HTTPS mit TLS (beide Server)

Beispiel (Nginx):


 server {
     listen 443 ssl;
     ssl_certificate /etc/ssl/certs/fullchain.pem;
     ssl_certificate_key /etc/ssl/private/key.pem;
 }


Apache:


 <VirtualHost *:443>
     SSLEngine on
     SSLCertificateFile /etc/ssl/certs/fullchain.pem
     SSLCertificateKeyFile /etc/ssl/private/key.pem
 </VirtualHost>


Logging

Apache:


 /var/log/apache2/access.log
 /var/log/apache2/error.log


Nginx:


 /var/log/nginx/access.log
 /var/log/nginx/error.log


Docker & Webserver

Nginx ist in Docker-Umgebungen extrem beliebt wegen:

  • wenig RAM
  • guter Performance
  • Reverse-Proxy-Fähigkeiten

Apache wird oft in LAMP-Stacks genutzt.

Sicherheitshinweise

  • TLS erzwingen (Redirect zu HTTPS)
  • Prinzip „Least Privilege“
  • keine .git- oder .env-Dateien ausliefern
  • Rate-Limits setzen (Nginx)
  • aktuelle Versionen nutzen
  • WAF-Integration möglich (z. B. ModSecurity)

ASCII-Ăśbersicht

Browser → HTTP/HTTPS → Webserver (Apache/Nginx) → Anwendung

Zusammenfassung

  • Apache = flexibel, modular, ideal fĂĽr klassische Websites
    • Nginx = schnell, modern, ideal fĂĽr Reverse Proxy & Docker
      * beide liefern Webseiten, Anwendungen und APIs aus
      * TLS-VerschlĂĽsselung ist Pflicht in modernen Umgebungen
      * zentrale Komponenten jeder Infrastruktur
it-themen/grundlagen/netzwerkdienste/apache_ngnix.1764594126.txt.gz · Zuletzt geändert: von lars