CodeGym /Kurse /Docker SELF /Bereitstellung eines Webservers mit virtuellen Hosts und ...

Bereitstellung eines Webservers mit virtuellen Hosts und SSL

Docker SELF
Level 7 , Lektion 5
Verfügbar

Bereitstellung eines Webservers mit virtuellen Hosts und SSL

1. Vorbereitung der Umgebung

Jetzt ist es an der Zeit, alles zusammenzubringen. Heute stellen wir einen Server mit mehreren virtuellen Hosts bereit und fügen HTTPS hinzu. Wir werden testen, debuggen und final konfigurieren.

Unsere Aufgabe

In diesem Projekt werden wir zwei Websites auf einem Webserver bereitstellen:

  • example.com
  • test.com

Für jede Website konfigurieren wir einen virtuellen Host, fügen HTTPS hinzu und zeigen die Schritte zur Fehlerbehebung und Prüfung. Bereit? Lass uns loslegen!

Vorbereitung

Bevor wir anfangen, stellen wir sicher, dass alles richtig eingestellt ist:

  1. Du hast bereits einen installierten Webserver (Nginx oder Apache).

    • Falls du Nginx verwendest:

      sudo apt-get update
      sudo apt-get install nginx
      
    • Oder Apache:

      sudo apt-get update
      sudo apt-get install apache2
      
  2. Das Certbot-Paket zur Arbeit mit SSL ist installiert.

    • Für Nginx:

      sudo apt-get install certbot python3-certbot-nginx
      
    • Für Apache:

      sudo apt-get install certbot python3-certbot-apache
      
  3. Du hast Zugriff auf einen Server, auf dem die DNS für die Domains example.com und test.com eingerichtet sind, oder du kannst /etc/hosts für Tests verwenden.


2. Verzeichnisse für jede Website konfigurieren

Fangen wir mit dem Erstellen von Verzeichnissen und Dateien für unsere Websites an.

Schritt 1: Ordner für die Websites erstellen

sudo mkdir -p /var/www/example.com
sudo mkdir -p /var/www/test.com

Schritt 2: Test-HTML-Dateien erstellen

Erstellen wir eine einfache HTML-Datei für jede Website:

example.com

sudo nano /var/www/example.com/index.html

Inhalt:

<!DOCTYPE html>
<html>
<head>
    <title>Willkommen auf example.com</title>
</head>
<body>
    <h1>Das ist example.com</h1>
    <p>Willkommen auf example.com! Die Seite läuft und ist sicher mit SSL!</p>
</body>
</html>

test.com

sudo nano /var/www/test.com/index.html

Inhalt:

<!DOCTYPE html>
<html>
<head>
    <title>Willkommen auf test.com</title>
</head>
<body>
    <h1>Das ist test.com</h1>
    <p>Willkommen auf test.com! Die Seite läuft und ist sicher mit SSL!</p>
</body>
</html>

3. Konfiguration der virtuellen Hosts

Wir erstellen eine separate Konfigurationsdatei für jede Website.

Schritt 1: Konfiguration für Nginx

example.com

sudo nano /etc/nginx/sites-available/example.com

Inhalt:

server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/example.com;
    index index.html;

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

test.com

sudo nano /etc/nginx/sites-available/test.com

Inhalt:

server {
    listen 80;
    server_name test.com www.test.com;

    root /var/www/test.com;
    index index.html;

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

Wir aktivieren die Konfiguration:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/test.com /etc/nginx/sites-enabled/

Server neustarten:

sudo nginx -t
sudo systemctl reload nginx

Schritt 2: Konfiguration für Apache

example.com

sudo nano /etc/apache2/sites-available/example.com.conf

Inhalt:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com

    DocumentRoot /var/www/example.com
    <Directory /var/www/example.com>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

test.com

sudo nano /etc/apache2/sites-available/test.com.conf

Inhalt:

<VirtualHost *:80>
    ServerName test.com
    ServerAlias www.test.com

    DocumentRoot /var/www/test.com
    <Directory /var/www/test.com>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

Wir aktivieren die Konfigurationen:

sudo a2ensite example.com.conf
sudo a2ensite test.com.conf
sudo systemctl reload apache2

4. Konfiguration von HTTPS für Websites

Jetzt verbinden wir SSL für beide Websites mit Let’s Encrypt.

sudo certbot --nginx
# oder für Apache:
sudo certbot --apache

Während des Prozesses wird vorgeschlagen, auszuwählen, für welche Websites Zertifikate ausgestellt werden sollen. Wähle example.com und test.com. Certbot aktualisiert automatisch die Konfiguration der Server.


5. Überprüfung der Webseitenfunktionalität

Nach Abschluss der Konfiguration besuche deine Webseiten:

Du solltest die erstellten HTML-Seiten sehen. Stelle sicher, dass der Browser "Sicher" (Secure) in der Adressleiste anzeigt.


6. Debugging und Überprüfung

Falls etwas schiefgelaufen ist, überprüfe die Logs:

  • Für Nginx:

    sudo tail -f /var/log/nginx/error.log
    
  • Für Apache:

    sudo tail -f /var/log/apache2/error.log
    

Oder überprüfe die Erreichbarkeit mit curl:

curl -I http://example.com
curl -I https://example.com

7. Verlängerung von Zertifikaten

Certbot erneuert Zertifikate automatisch mithilfe von cron des Systems. Um es zu überprüfen, kannst du es manuell starten:

sudo certbot renew --dry-run

So, Schritt für Schritt haben wir einen Webserver mit Unterstützung für mehrere Websites und HTTPS eingerichtet. Du bist gerade den ganzen Weg vom leeren Server bis hin zu einem funktionierenden Server mit virtuellen Hosts und SSL gegangen. Jetzt ist dein Server bereit, der Welt deine Websites zu zeigen. Ist das nicht genial?

1
Опрос
Arbeiten mit Webservern in Linux,  7 уровень,  5 лекция
недоступен
Arbeiten mit Webservern in Linux
Arbeiten mit Webservern in Linux
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION