CodeGym /Kurse /Docker SELF /Installation und Konfiguration von Webservern (Nginx/Apac...

Installation und Konfiguration von Webservern (Nginx/Apache)

Docker SELF
Level 7 , Lektion 0
Verfügbar

Installation und Konfiguration von Webservern (Nginx/Apache)

1. Was ist ein Web-Server?

Heute sprechen wir über Nginx und Apache, die zwei beliebtesten Web-Server. Am Ende der Vorlesung wird dein Server stolz nichts ahnende Benutzer im Internet begrüßen können.

Bevor wir uns auf die Befehle stürzen, lass uns erst verstehen, was wir eigentlich erreichen wollen. Ein Web-Server ist ein Programm, das HTTP-Anfragen entgegennimmt (zum Beispiel, wenn der Nutzer im Browser eine Website-Adresse eingibt), diese verarbeitet und mit passendem Inhalt antwortet (HTML-Seite, Datei oder auch der Fehler "404 Not Found"). Er fungiert als Bindeglied zwischen den Benutzern und deinem Inhalt.

Nginx vs Apache: Der Kampf der Web-Server

Wenn Nginx und Apache sich in einem Café treffen würden, dann:

  • Nginx würde einen Lavendel-Latte bestellen und alle Aufgaben sofort asynchron erledigen: "Gib mir die Anfrage, und ich schicke dir die Datei in einer Minute zurück, keine Ablenkung!".
  • Apache hingegen wäre traditioneller, würde für jede Aufgabe einen eigenen Thread erstellen und höflich, aber bei einer großen Anzahl von Anfragen langsamer antworten.

Kurz zusammengefasst:

Merkmal Nginx Apache
Architektur Asynchron Thread-basiert
Leistung Hoch bei großer Last Eignet sich für dynamische Inhalte (PHP/Perl)
Einfachheit Einfache Konfiguration, aber mit Eigenheiten Universeller, aber komplexer

Wann sollte man was wählen?

  • Wenn deine Website aus ein paar statischen Dateien besteht (z. B. Blog oder Landing Page), dann ist Nginx dein Freund.
  • Wenn du mit dynamischen Web-Anwendungen arbeitest (z. B. PHP-Website), bietet Apache mehr Flexibilität.

2. Installation eines Webservers

Jetzt, wo du verstanden hast, warum das wichtig ist, ist es an der Zeit, mit der Installation zu beginnen. Wir werden uns die Installation sowohl von Nginx als auch von Apache ansehen. Wähle das aus, was dir besser gefällt, oder installiere direkt beide, um dich wie ein Profi zu fühlen.

Installation von Nginx

  1. Paketliste aktualisieren:

    sudo apt-get update
    
  2. Nginx installieren:

    sudo apt-get install nginx
    
  3. Server-Status überprüfen:

    sudo systemctl status nginx
    

    Wenn alles in Ordnung ist, siehst du etwas wie: active (running).

  4. Standardseite überprüfen: Öffne deinen Browser und gib http://localhost ein. Du solltest die Begrüßungsseite von Nginx sehen, die bestätigt, dass die Installation erfolgreich war.

Installation von Apache

  1. Paketliste aktualisieren:

    sudo apt-get update
    
  2. Apache installieren:

    sudo apt-get install apache2
    
  3. Server-Status überprüfen:

    sudo systemctl status apache2
    

    Ähnlich wie bei Nginx sollte der Status „active (running)“ sein.

  4. Standardseite überprüfen: Öffne im Browser http://localhost. Jetzt sollte die Standardseite von Apache angezeigt werden.


3. Grundlegende Konfiguration des Webservers

Wo sind die Einstellungen versteckt?

  • Bei Nginx befindet sich die Hauptkonfigurationsdatei unter:

    /etc/nginx/nginx.conf
    
  • Bei Apache:

    /etc/apache2/apache2.conf
    

Versuch, die Konfigurationsdateien mit deinem Lieblingseditor zu öffnen (zum Beispiel nano):

sudo nano /etc/nginx/nginx.conf
Wichtig!

Hier beginnt dein erstes Abenteuer: Vielleicht verstehst du jetzt gar nichts, weil die Konfigurationsdateien wie Zaubersprüche aus einem Rollenspiel aussehen. Aber keine Panik – wir klären das.

Starten, Stoppen und Neustarten von Servern

Wenn du weißt, wie man Dienste in Linux verwaltet, ist „die halbe Miete geschafft“. Hier sind die wichtigsten Befehle, um unsere Web-Generatoren zu steuern:

Für Nginx:

sudo systemctl start nginx   # Start
sudo systemctl stop nginx    # Stop
sudo systemctl restart nginx # Neustart
sudo systemctl reload nginx  # Konfiguration neu laden

Für Apache:

sudo systemctl start apache2
sudo systemctl stop apache2
sudo systemctl restart apache2
sudo systemctl reload apache2

Konfiguration überprüfen

Bevor du den Server neustartest, überprüfe immer, ob du keine Fehler gemacht hast:

  • Für Nginx:

      sudo nginx -t
    
  • Für Apache:

      sudo apachectl configtest
    

Jeder Fehler in der Konfiguration wird angezeigt – du kannst den Server nicht versehentlich kaputt machen.


4. Demonstration: Wir starten unsere erste Website

Jetzt machen wir das, was Webentwickler wirklich lieben – wir erstellen eine Website mit dem unglaublich kreativen Namen „Hello Server“.

Für Nginx

  1. Erstelle ein Verzeichnis für die Website:

    sudo mkdir -p /var/www/hello
    sudo nano /var/www/hello/index.html
    

    Schreibe folgendes in die Datei (ja, alles Geniale ist einfach):

    <h1>Hello, Nginx Server!</h1>
  2. Konfiguration einstellen:

    sudo nano /etc/nginx/sites-available/hello
    

    Hier ein Beispiel für eine einfache Konfiguration:

    server {
        listen 80;
        server_name hello.local;
    
        root /var/www/hello;
        index index.html;
    
        location / {
            try_files $uri $uri/ =404;
        }
        }
  3. Aktiviere die Konfiguration:

    sudo ln -s /etc/nginx/sites-available/hello /etc/nginx/sites-enabled/
    sudo nginx -t
    sudo systemctl reload nginx
    
  4. Füge einen Eintrag in /etc/hosts hinzu, um den Domainnamen hello.local auf der lokalen Maschine zu konfigurieren:

    127.0.0.1 hello.local
    
  5. Überprüfe die Website im Browser: http://hello.local.

Wichtig!

Die hosts-Datei enthält das Mapping von IP-Adressen zu Domainnamen. Das ist dein lokaler DNS-Server. Diese Datei existiert in jedem Betriebssystem. Auch unter Windows ist sie vorhanden, erreichbar unter C:\Windows\System32\drivers\etc\hosts

Für Apache

  1. Erstelle ein Verzeichnis:

    sudo mkdir -p /var/www/hello
    sudo nano /var/www/hello/index.html
    

    Befülle die Datei:

    <h1>Hello, Apache Server!</h1>
  2. Erstelle die virtuelle Host-Konfiguration:

    sudo nano /etc/apache2/sites-available/hello.conf
    

    Hier ein Beispiel für die Konfiguration:

    <VirtualHost *:80>
        ServerName hello.local
        DocumentRoot /var/www/hello
    
        <Directory /var/www/hello>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>
  3. Aktiviere die Konfiguration:

    sudo a2ensite hello.conf
    sudo systemctl reload apache2
    
  4. Füge einen Eintrag in /etc/hosts hinzu:

    127.0.0.1 hello.local
    
  5. Teste die Funktionalität: http://hello.local.


Nach der heutigen Vorlesung seid ihr bereit, selbstständig einen grundlegenden Webserver zu installieren und zu konfigurieren. Noch ein paar weitere Schritte – und ihr könnt voll funktionsfähige Websites und Anwendungen bereitstellen, die nicht mehr wie Kinderzeichnungen aussehen. Irgendwo um die Ecke lauert HTTPS, aber darüber später.

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION