Wyszukiwanie w witrynie

Jak zainstalować serwer WWW Nginx na Ubuntu 20.04


Nginx to wysokowydajny serwer internetowy typu open source, który ma ogromny udział w rynku w środowiskach produkcyjnych. Jest to lekki i solidny serwer internetowy, który jest najczęściej używany do hostingu witryn internetowych o dużym natężeniu ruchu.

Powiązane lektury: Jak zainstalować serwer WWW Apache na Ubuntu 20.04

W tym przewodniku dowiesz się, jak zainstalować serwer WWW Nginx i skonfigurować blok serwera Nginx (hosty wirtualne) na Ubuntu 20.04 LTS.

Warunki wstępne

Aby rozpocząć, upewnij się, że masz instancję Ubuntu 20.04 LTS z dostępem SSH i użytkownikiem Sudo z uprawnieniami roota. Ponadto do instalacji pakietów Nginx zalecane jest stabilne połączenie internetowe.

Instalowanie Nginx na Ubuntu 20.04

1. Przed instalacją Nginx zaktualizuj listę pakietów na swoim serwerze.

sudo apt update

2. Następnie zainstaluj Nginx, wydając polecenie:

sudo apt install nginx

Gdy pojawi się monit o kontynuację, naciśnij 'Y' na klawiaturze i naciśnij ENTER. Instalacja zostanie wykonana w ciągu zaledwie kilku sekund.

3. Po pomyślnym zainstalowaniu Nginx możesz go uruchomić i zweryfikować, uruchamiając:

sudo systemctl start nginx
sudo systemctl status nginx

Powyższe dane wyjściowe wyraźnie wskazują, że Nginx jest uruchomiony.

4. Aby sprawdzić wersję Nginx, uruchom:

sudo dpkg -l nginx

Dane wyjściowe wskazują, że używamy Nginx 1.17.10, który jest najnowszą wersją w chwili pisania tego artykułu.

Otwórz porty Nginx w zaporze UFW

Teraz, gdy Nginx jest zainstalowany i działa zgodnie z oczekiwaniami, konieczne jest wprowadzenie kilku zmian, aby Nginx był dostępny za pośrednictwem przeglądarki internetowej. Jeśli używasz zapory sieciowej UFW, musisz zezwolić na profil aplikacji Nginx.

Z zaporą ufw powiązane są 3 profile Nginx.

  1. Nginx Full – otwiera zarówno port 80, jak i 443 (dla szyfrowania SSL/TLS).
  2. Nginx HTTP – otwiera tylko port 80 (dla nieszyfrowanego ruchu sieciowego).
  3. Nginx HTTPS – otwiera tylko port 443 (dla szyfrowania SSL/TLS).

5. Zacznij od włączenia zapory sieciowej w Ubuntu 20.04.


sudo ufw enable

6. Na razie, ponieważ nie jesteśmy na zaszyfrowanym serwerze, zezwolimy tylko na profil Nginx HTTP, który pozwoli na ruch na porcie 80 .

sudo ufw allow 'Nginx HTTP'

7. Następnie załaduj ponownie zaporę sieciową, aby zmiany zostały zachowane.

sudo ufw reload

8. Teraz sprawdź stan zapory sieciowej, aby sprawdzić, które profile zostały dozwolone.

sudo ufw status

Testowanie Nginx na Ubuntu 20.04

Nginx działa w przeglądarce tak, jak można się spodziewać po każdym serwerze internetowym, a najpewniejszym sposobem sprawdzenia, czy działa zgodnie z oczekiwaniami, jest wysłanie żądań przez przeglądarkę.

9. Przejdź więc do przeglądarki i przeglądaj adres IP serwera lub nazwę domeny. Aby sprawdzić adres IP swojego serwera, uruchom polecenie ifconfig:

ifconfig

10. Jeśli korzystasz z serwera w chmurze, uruchom poniższe polecenie curl, aby pobrać publiczny adres IP serwera.

curl ifconfig.me

11. W polu adresu URL przeglądarki wpisz adres IP lub nazwę domeny swojego serwera i naciśnij ENTER.

http://server-IP or domain-name

Powinieneś otrzymać domyślną stronę powitalną Nginx, jak pokazano.

Zarządzaj procesem Nginx w Ubuntu 20.04

12. Aby zatrzymać serwer WWW Nginx, po prostu uruchom:

sudo systemctl stop nginx

13. Aby ponownie uruchomić serwer WWW, wykonaj:

sudo systemctl start nginx

14. Aby automatycznie uruchomić Nginx podczas rozruchu lub ponownego uruchomienia:

sudo systemctl enable nginx

15. Jeśli chcesz zrestartować serwer WWW, szczególnie po wprowadzeniu zmian w plikach konfiguracyjnych, uruchom:

sudo systemctl restart nginx

16. Alternatywnie możesz załadować ponownie, aby uniknąć zrywania połączeń, jak pokazano.

sudo systemctl reload nginx

Konfigurowanie bloku serwera Nginx w Ubuntu 20.04

Jeśli planujesz hostować więcej niż jedną witrynę na swoim serwerze, zdecydowanie zalecane jest skonfigurowanie bloku serwera Nginx. Blok serwera jest odpowiednikiem wirtualnego hosta Apache.

Domyślnie Nginx jest dostarczany z domyślnym blokiem serwera, który jest ustawiony tak, aby udostępniać treści internetowe w ścieżce /var/www/html.

Zamierzamy utworzyć osobny blok Nginx, który będzie obsługiwał zawartość naszej domeny. W tym przewodniku będziemy używać domeny crazytechgeek.info.
W Twoim przypadku pamiętaj o zastąpieniu tej nazwy własną domeną.

17. Aby utworzyć plik bloku serwera, najpierw utwórz katalog dla swojej domeny, jak pokazano.

sudo mkdir -p /var/www/crazytechgeek.info/html

18. Następnie przypisz własność do nowego katalogu za pomocą zmiennej $USER.

sudo chown -R $USER:$USER /var/www/crazytechgeek.info/html

19. Upewnij się, że przypisałeś także uprawnienia do katalogów, pozwalając właścicielowi na posiadanie wszystkich uprawnień (odczyt, zapis i wykonywanie), a innym osobom jedynie uprawnienia do odczytu i wykonywania.

sudo chmod -R 755 /var/www/crazytechgeek.info

20. W katalogu domeny utwórz plik index.html, który będzie zawierał treść internetową domeny.

sudo vim /var/www/crazytechgeek.info/html/index.html

Wklej poniższą zawartość do przykładowego pliku testowego.

<html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
        <h1>Bravo! Your server block is working as expected!</h1>
    </body>
</html>

Zapisz zmiany i zamknij plik.

21. Aby serwer Nginx mógł obsługiwać właśnie dodaną treść, musisz utworzyć blok serwera z odpowiednimi dyrektywami. W tym przypadku utworzyliśmy nowy blok serwerów pod adresem:

sudo vim /etc/nginx/sites-available/crazytechgeek.info

Wklej pokazaną konfigurację.

server {
        listen 80;
        listen [::]:80;

        root /var/www/crazytechgeek.info/html;
        index index.html index.htm index.nginx-debian.html;

        server_name crazytechgeek.info  www.crazytechgeek.info;

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

Zapisz i wyjdź.

22. Teraz włącz plik bloku serwera, łącząc go z katalogiem sites-enabled, z którego serwer Nginx czyta podczas uruchamiania.

sudo ln -s /etc/nginx/sites-available/crazytechgeek.info /etc/nginx/sites-enabled/

23. Aby zmiany zostały wprowadzone, zrestartuj serwer WWW Nginx.

sudo systemctl restart nginx

24. Aby mieć pewność, że wszystkie konfiguracje są w porządku, uruchom polecenie:

nginx -t

Jeśli wszystkie konfiguracje są w porządku, powinieneś otrzymać wynik pokazany poniżej:

25. Serwer internetowy Nginx powinien teraz obsługiwać zawartość Twojej domeny. Jeszcze raz przejdź do przeglądarki i przeglądaj domenę swojego serwera.

http://domain-name

Twoja niestandardowa treść w katalogu Twojej domeny będzie wyświetlana w pokazany sposób.

Ważne pliki konfiguracyjne Nginx

Zanim zakończymy, ważne jest, abyśmy sprawdzili niektóre ważne pliki konfiguracyjne związane z Nginx.

Pliki konfiguracyjne Nginx

  • /etc/nginx/nginx.conf: To jest główny plik konfiguracyjny. Możesz modyfikować ustawienia, aby spełnić wymagania swojego serwera.
  • /etc/nginx/sites-available: Jest to katalog przechowujący konfigurację bloku serwera. Nginx używa bloków serwera tylko wtedy, gdy są one połączone z katalogiem obsługującym witryny.
  • /etc/nginx/sites-enabled: katalog zawiera bloki serwera Nginx dla poszczególnych witryn, które są już włączone.

Pliki dziennika Nginx

Istnieją dwa główne pliki dziennika, których można użyć do rozwiązywania problemów z serwerem WWW Nginx:

  • /var/log/nginx/access.log: rejestruje wszystkie żądania kierowane do serwera internetowego.
  • /var/log/nginx/error.log: To jest plik dziennika błędów, w którym zapisywane są wszystkie błędy napotkane przez Nginx.
Wniosek

Dotarliśmy do końca tego samouczka. Pokazaliśmy, jak zainstalować Nginx na Ubuntu 20.04 i jak skonfigurować bloki serwera Nginx do obsługi zawartości Twojej domeny. Twoja opinia jest mile widziana.