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 zstrony-dostępne
doz 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.