Inhaltsverzeichnis

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:

Beide sind weit verbreitet, aber unterschiedlich aufgebaut und eingesetzt.

Aufgaben eines Webservers

Apache – Grundlagen

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

Merkmale

Module (Beispiele):

Standardverzeichnisse (Debian/Ubuntu)


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


Konfigurationen:


 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:

Merkmale

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:

Apache wird oft in LAMP-Stacks genutzt.

Sicherheitshinweise

ASCII-Ăśbersicht


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


Zusammenfassung