CodeGym /Kursy /Docker SELF /Uruchamianie serwera WWW z wirtualnymi hostami i SSL

Uruchamianie serwera WWW z wirtualnymi hostami i SSL

Docker SELF
Poziom 7 , Lekcja 5
Dostępny

Uruchamianie serwera WWW z wirtualnymi hostami i SSL

1. Przygotowanie środowiska

Teraz czas wszystko złożyć w całość. Dziś uruchamiamy serwer z kilkoma wirtualnymi hostami i podłączamy do nich HTTPS. Będziemy testować, debugować i ostatecznie konfigurować.

Nasze zadanie

W tym projekcie uruchomimy dwie strony na jednym serwerze WWW:

  • example.com
  • test.com

Dla każdej strony skonfigurujemy wirtualny host, podłączymy HTTPS, a także pokażemy kroki debugowania i sprawdzania działania. Gotowi? Zaczynamy!

Przygotowanie

Zanim zaczniemy, upewnijmy się, że wszystko jest poprawnie ustawione:

  1. Masz już zainstalowany serwer WWW (Nginx lub Apache).

    • Jeśli używasz Nginx:

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

      sudo apt-get update
      sudo apt-get install apache2
      
  2. Zainstalowany jest pakiet Certbot do pracy z SSL.

    • Dla Nginx:

      sudo apt-get install certbot python3-certbot-nginx
      
    • Dla Apache:

      sudo apt-get install certbot python3-certbot-apache
      
  3. Masz dostęp do serwera, gdzie skonfigurowane są DNS dla domen example.com i test.com, lub możesz użyć /etc/hosts do testów.


2. Konfiguracja katalogu dla każdej strony

Zaczynamy od tworzenia katalogów i plików dla naszych stron.

Krok 1: Tworzymy foldery dla stron

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

Krok 2: Tworzymy testowe pliki HTML

Tworzymy prosty plik HTML dla każdej strony:

example.com

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

Zawartość:

<!DOCTYPE html>
<html>
<head>
    <title>Witamy na example.com</title>
</head>
<body>
    <h1>To jest example.com</h1>
    <p>Witamy na example.com! Strona działa i jest zabezpieczona przy użyciu SSL!</p>
</body>
</html>

test.com

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

Zawartość:

<!DOCTYPE html>
<html>
<head>
    <title>Witamy na test.com</title>
</head>
<body>
    <h1>To jest test.com</h1>
    <p>Witamy na test.com! Strona działa i jest zabezpieczona przy użyciu SSL!</p>
</body>
</html>

3. Konfiguracja wirtualnych hostów

Stworzymy osobny plik konfiguracyjny dla każdej strony.

Krok 1: Konfiguracja dla Nginx

example.com

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

Zawartość:

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

Zawartość:

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

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

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

Aktywujemy konfigurację:

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/

Restartujemy serwer:

sudo nginx -t
sudo systemctl reload nginx

Krok 2: Konfiguracja dla Apache

example.com

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

Zawartość:

<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

Zawartość:

<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>

Aktywujemy konfiguracje:

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

4. Konfiguracja HTTPS dla stron

Teraz podłączymy SSL dla obu stron za pomocą Let’s Encrypt.

sudo certbot --nginx
# albo dla Apache:
sudo certbot --apache

Proces zaproponuje wybór stron, dla których będą wydane certyfikaty. Wybierz example.com i test.com. Certbot automatycznie zaktualizuje konfigurację serwerów.


5. Sprawdzanie działania stron

Po zakończeniu konfiguracji odwiedź swoje strony:

Powinieneś zobaczyć utworzone strony HTML. Upewnij się, że przeglądarka wyświetla "Bezpieczne" (Secure) w pasku adresu.


6. Debugowanie i testowanie

Jeśli coś poszło nie tak, sprawdź logi:

  • Dla Nginx:

    sudo tail -f /var/log/nginx/error.log
    
  • Dla Apache:

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

Lub sprawdź dostępność za pomocą curl:

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

7. Odnawianie certyfikatów

Certbot automatycznie odnawia certyfikaty przy użyciu systemowego cron. Aby to sprawdzić, możesz ręcznie uruchomić:

sudo certbot renew --dry-run

Krok po kroku skonfigurowaliśmy serwer webowy z obsługą wielu witryn i HTTPS. Właśnie przeszedłeś całą drogę od pustego serwera do działającego z wirtualnymi hostami i SSL. Teraz twój serwer jest gotowy, żeby pokazać światu swoje witryny. Czy to nie jest super?

1
Опрос
Praca z serwerami WWW w Linuxie,  7 уровень,  5 лекция
недоступен
Praca z serwerami WWW w Linuxie
Praca z serwerami WWW w Linuxie
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION