Jak zainstalować Nginx na Ubuntu 20.04 LTS?

Pełny przewodnik krok po kroku dotyczący instalacji i konfiguracji serwera WWW Nginx w systemie Ubuntu 20.04

Nginx to popularny serwer internetowy typu reverse proxy o otwartym kodzie źródłowym, dostępny na wielu platformach. Oprogramowanie zostało opracowane przez Igor Sysojew jako rozwiązanie problemu C10K i po raz pierwszy wydany w 2004 roku. Problem C10K to problem obsługi dziesięciu tysięcy klientów jednocześnie, co nie było łatwe na początku 2000 roku.

W tym samouczku przyjrzymy się, jak zainstalować i skonfigurować Nginx na Ubuntu 20.04 LTS.

Warunki wstępne

System z zainstalowanym Ubuntu 20.04 i sudo użytkownik. Ponadto nie musisz mieć żadnego innego serwera WWW, takiego jak Apache, działającego na porcie 80 lub 443.

Instalowanie Nginx

Nginx jest dostępny w repozytorium Ubuntu 20.04 i trafny do zainstalowania go można użyć menedżera pakietów. Aby zainstalować Nginx, otwórz terminal za pomocą Ctrl+Alt+T i biegnij:

sudo apt aktualizacja && sudo apt zainstaluj nginx

Instalacja zostanie wkrótce zakończona, a demon Nginx uruchomi się automatycznie w tle. Aby sprawdzić stan Nginx, uruchom:

sudo systemctl status nginx

Po uruchomieniu powyższego polecenia powinieneś otrzymać status Nginx jako aktywny(w biegu) na zielono, jak widać poniżej.

Konfiguracja zapory Ubuntu (UFW)

Domyślnie porty wychodzące HTTP (80) i HTTPS (443) są zamknięte w Ubuntu 20.04. Dodatkowo domyślny demon zapory ufw jest wyłączone, ponieważ wszystkie porty są zamknięte.

Dlatego, aby uzyskać dostęp do serwera Nginx z innych systemów, musisz włączyć ufw i skonfiguruj go poprawnie, aby zezwolić na ruch na porcie 80 oraz 443. Zanim włączysz ufw, wiedz, że jeśli konfigurujesz Nginx na zdalnym serwerze, najpierw zaktualizuj ufw zasady zezwalające cisza biegiem:

sudo ufw zezwól na ssh

Powyższe polecenie umożliwia cisza dostęp do zdalnego serwera bez zezwolenia cisza zostaniesz zablokowany na zdalnym serwerze.

Po włączeniu cisza dostęp, możesz włączyć ufw demona zapory poprzez uruchomienie:

włączanie sudo ufw

Teraz musisz zmienić reguły zapory, aby zezwolić na porty HTTP i HTTPS, aby Nginx mógł obsługiwać ruch sieciowy. Aby zmienić reguły, uruchom:

sudo ufw zezwala na 'Nginx Full'

Nginx pełny zezwala zarówno na porty HTTP, jak i HTTPS dla ruchu przychodzącego i wychodzącego ze wszystkich adresów IP.

Następnie sprawdź, czy reguły zostały poprawnie dodane do ufw firewall, uruchamiając polecenie:

status sudo ufw

Powyższe polecenie wyświetli reguły, do których dodaliśmy ufw demon zapory.

Łączenie z serwerem Nginx

Teraz, gdy zainstalowaliśmy i skonfigurowaliśmy Nginx ufw aby zezwolić na przychodzący ruch sieciowy HTTP i HTTPS, powinieneś mieć dostęp do serwera Nginx przy użyciu adresu IP serwera.

Jeśli nie znasz adresu IP serwera, użyj poniższego polecenia, aby łatwo go pobrać.

adres IP pokaż eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

Po uzyskaniu adresu IP wklej go do przeglądarki i naciśnij Enter.

//twój-ip-serwera

Jeśli wszystko zostało poprawnie skonfigurowane, powinieneś zobaczyć stronę „Witamy w nginx!”.

Pliki i katalogi Nginx

Teraz, gdy mamy zainstalowany i uruchomiony Nginx na twoim serwerze. Przyjrzyjmy się niektórym ważnym plikom i katalogom Nginx, których będziesz musiał użyć do skonfigurowania swojej witryny/aplikacji internetowej.

Zawartość serwera WWW

Możesz skonfigurować dowolną lokalizację, która ma być katalogiem głównym bloku serwera. Domyślny kod HTML Nginx to /var/www/html, to tam znajduje się strona „powitalna”, do której weszliśmy wcześniej.

Inne lokalizacje, które są zwykle używane jako katalog główny dla domen, obejmują:

  • /Dom//
  • /var/www/html/
  • /optować/

Pliki konfiguracyjne Nginx

Wszystkie pliki konfiguracyjne Nginx znajdują się w /etc/nginx informator. Przyjrzyjmy się niektórym ważnym plikom, których potrzebujemy, aby skonfigurować podstawową domenę.

  • /etc/nginx/nginx.conf: Ten plik zawiera całą konfigurację potrzebną do uruchomienia Nginx.
  • /etc/nginx/dostępne-strony/: Ten katalog zawiera wszystkie konfiguracje serwerów blokowych domen, ale obecnie nie są włączone/wdrożone, a zatem nie są dostępne dla klientów.
  • /etc/nginx/witryny włączone/: Ten katalog zawiera aktualnie aktywne/włączone domeny dostępne dla klientów. Aby włączyć domenę, musimy połączyć plik konfiguracyjny domeny z strony-dostępne do z obsługą witryn informator.
  • /etc/nginx/snippets/: W tym katalogu możemy przechowywać segmenty konfiguracji potencjalnie wielokrotnego użytku. Oszczędza dużo czasu w środowisku produkcyjnym dzięki temu, że umożliwia ponowne wykorzystanie segmentów/bloków konfiguracji.

Dzienniki serwera

Nginx rejestruje zdarzenia/działania i przechowuje je w plikach dziennika w /var/log/nginx informator. Nginx rejestruje działania w tych plikach:

  • /var/log/nginx/access.log: Ten plik rejestruje klientów, którzy uzyskali dostęp do serwera Nginx. Szczegóły obejmują adres IP klienta, godzinę i datę, przeglądarkę używaną do uzyskania dostępu do serwera i system operacyjny.
  • /var/log/nginx/error.log: Ten plik rejestruje błędy napotkane przez serwer Nginx podczas działania.

Tak więc w tej sekcji pokrótce przyjrzeliśmy się niektórym ważnym plikom i katalogom Nginx, które są wystarczające do rozpoczęcia pracy.

Konfigurowanie bloków serwera

Teraz, gdy mamy już podstawową wiedzę na temat plików i serwera Nginx, jesteśmy gotowi do skonfigurowania własnego bloku serwera. Bloki serwera są podobne do wirtualnych hostów Apache.

Przyjrzymy się, jak utworzyć blok serwera i zademonstrować, że będziemy używać przykład.com jako domena w procesie tworzenia.

💡 Zamień przykład.com z twoją nazwą domeny.

Zanim zaczniemy konfigurować bloki serwera, musimy utworzyć katalog, który będzie służył jako katalog główny dla zawartości witryny. Pozwól nam tworzyć /var/www/example.com/html katalog dla domeny przy użyciu mkdir Komenda.

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

ten -P opcja utworzy wszystkie potrzebne katalogi nadrzędne. Oznacza to, że stworzy przykład.com katalog nadrzędny do html jeśli nie istnieje.

Zmień właściciela katalogu za pomocą $UŻYTKOWNIK Zmienna środowiskowa:

sudo chown -R $USER:$USER /var/www/example.com/html

Następnie utwórz prosty index.html plik, który będzie dostępny podczas odwiedzania konfigurowanej domeny. To jest wyłącznie w celu wyjaśnienia.

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

Wklej następującą zawartość do pliku, który właśnie utworzyliśmy na serwerze.

  Witamy na example.com! 

Siema! Strona example.com jest dostępna!

naciskać Ctrl+O napisać i zapisać index.html plik, a następnie naciśnij ctrl+x do wyjścia nano redaktor.

Teraz w końcu możemy przejść do tworzenia bloku serwerów, aby Nginx mógł obsługiwać index.html kiedy jakiś użytkownik idzie do przykład.com. Aby utworzyć blok serwera, musimy utworzyć plik konfiguracyjny o nazwie przykład.com w strony-dostępne informator. W tym celu używamy nano i uruchamiamy:

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

A następnie wpisz lub skopiuj/wklej następującą konfigurację. Następnie naciśnij Ctrl+O i wejdź, aby napisać i zapisać. Podobnie, naciśnij ctrl+x aby zamknąć edytor nano.

serwer { nasłuchuj 80; słuchaj [::]:80; nazwa_serwera example.com www.example.com; root /var/www/example-domain.com/html; indeks index.html; lokalizacja / { try_files $uri $uri/ =404; } }

Powyższa konfiguracja jest podobna do domyślnej konfiguracji bloku serwera, zmieniliśmy źródło oświadczenie wskazujące na nasz nowy katalog główny i zmieniające Nazwa serwera do naszej nazwy domeny. Podczas Lokalizacja{} Instrukcja służy jako instrukcja przechwytywania błędów, jeśli pliki nie zostaną znalezione i wyświetla błąd 404 klientowi.

Następnie możemy włączyć blok naszego serwera, aby Nginx działał przykład.com strony internetowe. Aby włączyć nasz blok serwera, musimy utworzyć dowiązanie symboliczne przykład.com plik z strony-dostępne do z obsługą witryn informator. Aby to zrobić, uruchom:

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

Link zostanie utworzony za z obsługą witryny katalog i teraz przykład.com powinna być włączona. Teraz mamy włączone dwa bloki serwera na naszym serwerze Nginx, które odpowiedzą na żądanie na podstawie słuchać oraz nazwa_serwera dyrektywy zapisane w przykład.com konfiguracja bloku serwera.

Aby sprawdzić, czy wszystkie pliki konfiguracyjne są poprawne i nie ma błędów składniowych, uruchom:

sudo nginx -t

Teraz w końcu uruchom ponownie Nginx, aby zastosować zmiany, uruchamiając następujące polecenie:

sudo systemctl uruchom ponownie nginx

Nginx zacznie teraz obsługiwać Twój blok serwera, możesz przejść do //twoja-nazwa-domeny i zobacz swoją stronę na żywo.

Notatka: Aby powyższa sekcja działała, musisz założyć własną domenę i wymienić przykład.com z własną nazwą domeny. Ponadto musisz skonfigurować DNS dla swojej domeny, aby wskazywał adres IP twojego serwera Nginx.

Podsumowując, przyjrzeliśmy się, jak zainstalować Nginx, skonfigurować ufw aby umożliwić zdalny dostęp do serwera Nginx, połączonego zdalnie z Nginx, zapoznał się z podstawowymi plikami i katalogami Nginx i nauczył się, jak skonfigurować blok serwera.

Aby dowiedzieć się więcej o Nginx, możesz zobaczyć wiki Nginx.