CodeGym /Kursy /Docker SELF /Instalacja i konfiguracja serwera internetowego (Nginx/Ap...

Instalacja i konfiguracja serwera internetowego (Nginx/Apache)

Docker SELF
Poziom 7 , Lekcja 0
Dostępny

Instalacja i konfiguracja serwera internetowego (Nginx/Apache)

1. Co to jest serwer WWW?

Dziś pogadamy o Nginx i Apache, dwóch najpopularniejszych serwerach WWW. Pod koniec wykładu Twój serwer będzie dumnie witał niczego nieświadomych użytkowników w internecie.

Zanim przeskoczymy do komend, zrozummy, co w ogóle chcemy osiągnąć. Serwer WWW to program, który przyjmuje żądania HTTP (na przykład, kiedy użytkownik wpisuje adres strony w przeglądarce), przetwarza je i odpowiada odpowiednią zawartością (strona HTML, plik lub nawet błąd „404 Not Found”). Jest on pomostem pomiędzy użytkownikami a Twoją zawartością.

Nginx kontra Apache: starcie serwerów WWW

Gdyby Nginx i Apache spotkali się w kawiarni, to:

  • Nginx zamówiłby lawendowe latte i od razu załatwiłby wszystko asynchronicznie: „Daj mi żądanie, a za minutę oddam Ci plik, nie odwracaj mi uwagi!”
  • Apache, z kolei, byłby bardziej tradycyjny, tworzyłby wątek dla każdego zadania i odpowiadałby uprzejmie, choć wolniej przy dużym obciążeniu.

Główne różnice:

Cechy Nginx Apache
Architektura Asynchroniczna Oparta na wątkach
Wydajność Wysoka przy dużym obciążeniu Odpowiednia dla dynamicznych treści (PHP/Perl)
Łatwość Łatwa konfiguracja, ale z pewnymi niuansami Bardziej uniwersalny, ale trudniejszy

Kiedy co wybrać?

  • Jeśli Twoja strona to garstka statycznych plików (np. blog lub landing page), Nginx to Twój przyjaciel.
  • Jeśli pracujesz z dynamicznymi aplikacjami webowymi (np. strony PHP), Apache zapewni większą elastyczność.

2. Instalacja serwera webowego

Teraz, kiedy rozumiesz, po co to wszystko jest potrzebne, czas rozpocząć instalację. Przyjrzymy się instalacji zarówno Nginx, jak i Apache. Wybierz, co bardziej Ci się podoba, lub zainstaluj oba, żeby poczuć się jak profesjonalista.

Instalacja Nginx

  1. Aktualizujemy listę pakietów:

    sudo apt-get update
    
  2. Instalujemy Nginx:

    sudo apt-get install nginx
    
  3. Sprawdzamy status serwera:

    sudo systemctl status nginx
    

    Jeżeli wszystko jest OK, zobaczysz coś takiego: active (running).

  4. Sprawdzamy domyślną stronę: Otwórz przeglądarkę i wpisz http://localhost. Powinna wyświetlić się strona powitalna Nginx, co oznacza, że instalacja się udała.

Instalacja Apache

  1. Aktualizujemy listę pakietów:

    sudo apt-get update
    
  2. Instalujemy Apache:

    sudo apt-get install apache2
    
  3. Sprawdzamy status serwera:

    sudo systemctl status apache2
    

    Podobnie jak w przypadku Nginx, status powinien być „active (running)”.

  4. Sprawdzamy domyślną stronę: Otwórz w przeglądarce http://localhost. Tym razem zobaczysz domyślną stronę Apache.


3. Podstawowa konfiguracja serwera WWW

Gdzie są ukryte ustawienia?

  • W Nginx główny plik konfiguracyjny znajduje się pod adresem:

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

    /etc/apache2/apache2.conf
    

Spróbuj otworzyć pliki konfiguracyjne za pomocą swojego ulubionego edytora (na przykład nano):

sudo nano /etc/nginx/nginx.conf
Ważne!

Tu zaczyna się twoja pierwsza przygoda: możliwe, że teraz niczego nie zrozumiesz, bo pliki konfiguracyjne wyglądają jak zaklęcia z gry RPG. Ale spokojnie – wszystko to wyjaśnimy.

Uruchamianie, zatrzymywanie i restartowanie serwerów

Jeśli wiesz, jak zarządzać usługami w Linuxie, to „połowa roboty zrobiona”. Oto podstawowe komendy do zarządzania naszymi generatorami WWW:

Dla Nginx:

sudo systemctl start nginx   # Uruchamianie
sudo systemctl stop nginx    # Zatrzymywanie
sudo systemctl restart nginx # Restartowanie
sudo systemctl reload nginx  # Przeładowanie konfiguracji

Dla Apache:

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

Sprawdzanie konfiguracji

Przed zrestartowaniem serwera zawsze sprawdzaj, czy nie popełniłeś błędów:

  • Dla Nginx:

      sudo nginx -t
    
  • Dla Apache:

      sudo apachectl configtest
    

Wszelkie błędy w konfiguracji zostaną wyświetlone – nie będziesz w stanie przypadkowo uszkodzić serwera.


4. Demonstracja: uruchamiamy naszą pierwszą stronę

Teraz zrobimy coś, co web-developerzy naprawdę uwielbiają – stworzymy stronę o niesamowicie kreatywnej nazwie „Hello Server”.

Dla Nginx

  1. Tworzymy katalog dla strony:

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

    Napisz w pliku coś takiego (tak, wszystko genialne jest proste):

    <h1>Hello, Nginx Server!</h1>
  2. Konfigurujemy ustawienia:

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

    Oto przykład prostej konfiguracji:

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

    sudo ln -s /etc/nginx/sites-available/hello /etc/nginx/sites-enabled/
    sudo nginx -t
    sudo systemctl reload nginx
    
  4. Dodaj wpis w /etc/hosts, żeby skonfigurować nazwę domeny hello.local na lokalnej maszynie:

    127.0.0.1 hello.local
    
  5. Sprawdź stronę w przeglądarce: http://hello.local.

Ważne!

Plik hosts zawiera mapowanie adresów IP na nazwy domen. To twój lokalny serwer DNS. Ten plik istnieje w każdym systemie operacyjnym. W systemie Windows też się znajduje, dostępny pod adresem C:\Windows\System32\drivers\etc\hosts

Dla Apache

  1. Tworzymy katalog:

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

    Wypełnij plik:

    <h1>Hello, Apache Server!</h1>
  2. Tworzymy konfigurację wirtualnego hosta:

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

    Oto przykład konfiguracji:

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

    sudo a2ensite hello.conf
    sudo systemctl reload apache2
    
  4. Dodaj wpis w /etc/hosts:

    127.0.0.1 hello.local
    
  5. Sprawdź działanie: http://hello.local.


Po dzisiejszym wykładzie jesteście już gotowi samodzielnie zainstalować i skonfigurować podstawowy serwer webowy. Jeszcze trochę wysiłku – i będziecie w stanie wdrażać pełnoprawne strony i aplikacje, które już nie wyglądają jak rysunek dziecka. Gdzieś za rogiem czai się HTTPS, ale o nim później.

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