Kiedy skończysz pisać kod dla swojej witryny lub aplikacji internetowej, będziesz musiał go umieścić w jakimś miejscu, gdzie może uruchamiać i dostarczać treści użytkownikom. Tutaj pojawia się oprogramowanie serwera www. Proste wyszukiwanie w Google oprogramowania serwera www przyniesie Ci dość listę rozwiązań do wyboru.
w tym samouczku skupiamy się na Nginx; a konkretnie na tym, jak możesz go uruchomić na Ubuntu 18.04. Nginx jest jednym z najpopularniejszych programów serwerowych na świecie. W rzeczywistości zajmuje miejsce w pierwszej piątce na Opensource.com rankingi. Odpowiada za zapewnienie dostępności i skalowalności stron o największym ruchu w Internecie. Gwarantuje bezpieczeństwo i można go używać jako odwrotnego proxy. Jak więc zainstalować Nginx na Ubuntu 18.04?
wymagania wstępne
oczywiście masz już komputer z systemem Ubuntu 18.0.4; i masz użytkownika spoza roota z uprawnieniami sudo. Jeśli nie, przejdź do tego linku, aby pobrać Ubuntu 18.0.4, a następnie postępuj zgodnie z przewodnikami dotyczącymi początkowej konfiguracji serwera z Ubuntu, aby utworzyć konto inne niż root. Gdy już masz konto, musisz zalogować się jako użytkownik inny niż root, a następnie możemy przystąpić do kolejnych kroków.
Krok 1 – Zainstaluj Nginx
Ubuntu jest oparte na Debianie. Aby zainstalować pakiety deb z wiersza poleceń, możesz użyć komend apt lub dpkg. Użyjemy polecenia apt, ponieważ jest ono bardziej popularne. Polecenie Apt pozwala użytkownikom na instalowanie pakietów, które są dostępne z domyślnych repozytoriów konkretnej dystrybucji Linuksa, z której korzystają. W tym przypadku mamy Nginx dostępne na domyślnych repozytoriach Ubuntu 18.04, więc możemy kontynuować. Z reguły, teraz i podczas instalacji dowolnego pakietu w dystrybucji Linuksa, musisz najpierw zaktualizować; wprowadź następujące polecenie w Terminalu, aby zaktualizować:
sudo apt update
następnie, aby zainstalować Nginx, wprowadź następujące polecenie:
sudo apt install nginx
postępuj zgodnie z instrukcjami, a Nginx zostanie zainstalowany na twoim serwerze wraz z niezbędnymi zależnościami.
Krok 2 – Dostosuj zaporę sieciową
domyślnym narzędziem konfiguracji zapory sieciowej Dla Ubuntu jest UFW. UFW oznacza nieskomplikowany Firewall i został opracowany w celu ułatwienia konfiguracji Zapory. Domyślnie nginx rejestruje się jako usługa z UFW po instalacji, co ułatwia konfigurację dostępu Nginx. Najpierw włącz UFW, wprowadzając następujące polecenie:
sudo ufw enable
następujące polecenie wyświetla konfigurację aplikacji, na którą UFW pozwala:
sudo ufw app list
oto screengrab, jak może wyglądać twój terminal:
pokazuje 3 profile dostępne dla Nginx. Są one opisane poniżej:
- nginx Full – otwiera zarówno port 80, jak i 443. Port 80 jest przeznaczony dla ruchu normalnego / niezaszyfrowanego, tj. http. Port 443 jest przeznaczony dla ruchu szyfrowanego TLS / SSL. tj. https.
- nginx HTTP – otwiera tylko port 80.
- nginx HTTPS – otwiera tylko port 443.
jako rekomendację powinieneś włączyć tylko Profil, który pozwoli na ruch skonfigurowany dla Twojej aplikacji internetowej. W tym przypadku pójdziemy z Nginx HTTP (port 80), ponieważ nie skonfigurowaliśmy SSL. Następujące polecenie włącza to:
sudo ufw allow 'Nginx HTTP'sudo ufw allow 'OpenSSH'
aby zweryfikować zmianę, wprowadź następujące polecenie:
sudo ufw status
twój terminal powinien pokazać coś podobnego do ekranu poniżej. Zauważ, że ruch HTTP jest dozwolony wszędzie:
Krok 3 – sprawdzanie serwera www
Po zainstalowaniu Nginx na Ubuntu 18.04 usługa uruchamia się automatycznie. Możesz to przetestować, wpisując następujące polecenie w swoim terminalu:
systemctl status nginx
twój terminal powinien wyświetlić coś takiego:
To pokazuje, że usługa została uruchomiona automatycznie i że jest uruchomiona. Jak już wiesz, głównym celem oprogramowania serwerowego jest serwowanie treści. Aby przetestować ten cel, musisz poprosić o stronę. Możesz to zrobić, uzyskując dostęp do adresu IP serwera z przeglądarki, która powinna wyświetlać domyślną stronę docelową Nginx. Jeśli nie znasz adresu IP serwera, poniżej znajdują się polecenia, które pomogą Ci go uzyskać:
ip addr show ens3 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
Poniżej znajduje się kolejna Komenda, której możesz użyć. Daje Ci publiczny adres IP widoczny z lokalizacji w internecie:
curl -4 icanhazip.com
pierwsze polecenie dostaje adres, Jak pokazano w terminalu poniżej. Następnie skopiuj i przetestuj go w przeglądarce:
twoja przeglądarka ładuje domyślną stronę Nginx, która wygląda jak Poniższy zrzut ekranu. To pokazuje, że twój serwer Nginx jest rzeczywiście uruchomiony:
Krok 4-podstawowe polecenia zarządzania Nginx
już widziałeś polecenie sprawdzające status Nginx:
systemctl status nginx
teraz, gdy mamy już uruchomiony serwer, oto kilka poleceń, które powinieneś mieć pod ręką do zarządzania usługą Nginx. Polecenia te działają nie tylko na Ubuntu 18.04, ale także na wszystkich dystrybucjach Linuksa.
aby zatrzymać serwer, wprowadź następujące polecenie:
sudo systemctl stop nginx
aby uruchomić serwer, wprowadź następujące polecenie:
sudo systemctl start nginx
za każdym razem, gdy wprowadzasz znaczące modyfikacje, takie jak zmiana portów lub interfejsów, musisz ponownie uruchomić serwer WWW. Poniższe polecenie uruchamia ponownie serwer:
sudo systemctl restart nginx
za każdym razem, gdy dokonujesz drobnych zmian konfiguracji, takich jak edycja bloków serwera, Nginx może przeładować bez upuszczania połączeń. Oto polecenie do przeładowania:
sudo systemctl reload nginx
Nginx automatycznie uruchamia serwer, gdy uruchamia się system operacyjny Ubuntu. Jeśli jednak chcesz zmienić to ustawienie, możesz wyłączyć usługę, wpisując poniższe polecenie:
sudo systemctl disable nginx
i możesz ponownie włączyć usługę, aby automatycznie uruchamiała się przy następnym uruchomieniu komputera, wpisując:
sudo systemctl enable nginx
Krok 5 – Konfigurowanie bloków serwera
możesz chcieć hostować wiele stron internetowych (domen) na jednym serwerze WWW. Bloki serwerów pomogą Ci to osiągnąć. Jeśli wcześniej używałeś Apache, bloki serwerów w Nginx można porównać do vhostów Apache. Po wyjęciu z pudełka, Nginx jest wyposażony w jeden blok serwera skonfigurowany do uruchamiania z katalogu / var / www / html, który załadował domyślną stronę Nginx w sekcji powyżej. Ten blok serwera jest w porządku podczas uruchamiania pojedynczej witryny. Jednak uruchamianie wielu witryn będzie problemem.
chcemy stworzyć inną stronę na tym samym serwerze i nazwać ją samplesite.com (to tylko przykład, należy go zastąpić własną nazwą domeny).
wewnątrz katalogu /var/www/ utwórz kolejny katalog dla samplesite.com. pozostaw domyślny /var / www / html, aby obsługiwać żądania, które nie pasują do żadnej innej witryny. Poniższe polecenie tworzy katalog dla samplesite.com jak już opisaliśmy. Znacznik-p ma zapewnić, że polecenie utworzy wszystkie niezbędne katalogi nadrzędne:
sudo mkdir -p /var/www/samplesite.com/html
aby zezwolić na dostęp do katalogu, musisz przypisać własność zmiennej środowiskowej $USER:
sudo chown -R $USER:$USER /var/www/samplesite.com/html
aby sprawdzić, czy uprawnienia dla Twoich korzeni internetowych są prawidłowe, wprowadź następujące polecenie:
sudo chmod -R 755 /var/www/samplesite.com
następny, niech spróbuj stworzyć prosty indeks.html w samplesite.com katalog. Możesz otworzyć edytor nano jako:
nano /var/www/samplesite.com/html/index.html
polecenie otwiera edytor w terminalu, Dodaj następujący kod:
<html><head><title>Welcome to samplesite.com!</title></head><body><h1>Success! The samplesite.com server block is running fine!</h1></body></html>
wpisz Ctrl + O, a następnie naciśnij Enter, aby zapisać plik. Wpisz Ctrl + X, aby zamknąć Edytor.
następnie możesz utworzyć blok serwera. Zamiast edytować i zaśmiecać domyślny plik konfiguracyjny, zaleca się utworzenie nowego w /etc/nginx/sites-available/samplesite.com. wprowadź następujące polecenie, aby otworzyć edytor nano:
sudo nano /etc/nginx/sites-available/samplesite.com
w edytorze wprowadź następujący kod, zmodyfikowany dla utworzonego katalogu. Uwaga nazwa główna i nazwa serwera pasują do naszego katalogu i domeny, którą chcemy obsługiwać:
server { listen IP_ADDRESS:80; listen :80; root /var/www/samplesite.com/html; index index.html index.htm index.nginx-debian.html; server_name samplesite.com samplesite.com; location / { try_files $uri $uri/ =404; }}
następnie zapisz i zamknij plik.
nginx odczytuje pliki konfiguracyjne z katalogu z obsługą witryn, więc musisz utworzyć dowiązanie symboliczne z nowego bloku serwera do katalogu z obsługą witryn. Zrobi to następujące polecenie:
sudo ln -s /etc/nginx/sites-available/samplesite.com /etc/nginx/sites-enabled/
masz teraz dwa bloki serwerów, które mogą obsługiwać dwie strony internetowe na jednym serwerze Nginx.
poniższe polecenie odpowiada na żądania w domenach samplesite.com oraz www.samplesite.com.
curl samplesite.com
a domyślny odpowie na wszelkie żądania uderzające w port 80, które nie pasują do żadnego z dwóch bloków serwera:Twój serwer Nginx może prawdopodobnie napotkać problem z pamięcią hash bucket podczas dodawania dodatkowych bloków serwera. Aby tego uniknąć, należy dostosować pojedynczy plik w nginx.plik conf. Następnie otwórz plik za pomocą edytora nano:
sudo nano /etc/nginx/nginx.conf
następnie znajdź dyrektywę: server_names_hash_bucket_size i usuń symbol#, aby go rozpakować, tak aby wyglądało to tak:
http { server_names_hash_bucket_size 64;}
następnie zapisz i zamknij plik.
aby sprawdzić, czy wszystkie pliki Nginx nie zawierają błędów, należy wprowadzić następujące polecenie:
sudo nginx -t
Jeśli wszystko jest w porządku, powinieneś zobaczyć coś takiego:
aby zmiany konfiguracji zostały wprowadzone, musisz najpierw uruchomić serwer Nginx za pomocą polecenia poniżej:
sudo systemctl restart nginx
teraz wpisz domenę i powinieneś zobaczyć stronę HTML, którą stworzyliśmy.
Krok 6 – Ważne pliki i katalogi Nginx, które powinieneś znać
- Główny katalog treści
–/var/www / html: Domyślna strona nginx jest przechowywana w tym katalogu. Jest to rzeczywista zawartość, którą widzisz, gdy uzyskujesz dostęp do adresu IP serwera. Możesz zmienić to zachowanie, zmieniając pliki konfiguracyjne Nginx.
- katalogi konfiguracyjne Nginx
–/etc / nginx: główny katalog zawierający wszystkie pliki konfiguracyjne Nginx.
–/etc/nginx / nginx.conf: główny plik konfiguracyjny Nginx, który można zmienić, aby wprowadzić globalne zmiany na serwerze Nginx.
–/etc/nginx/ sites-available/: Jest to katalog, w którym przechowujesz bloki serwerów poszczególnych witryn. Wszystkie bloki serwerów znajdują się w tym folderze. Dowiązanie symboliczne połączy je z katalogiem z obsługą witryn. Jeśli podamy zawartość tego dyrektora, powinniśmy zobaczyć blok serwera, który stworzyliśmy, a także domyślny blok serwera Nginx.
–/etc/nginx/ sites-enabled/: bloki enable per-site server istnieją w tym katalogu. Są one powiązane z aktualnymi plikami konfiguracyjnymi w katalogu sites-available.
– /etc/nginx/snippets/: katalog, w którym przechowujesz urywki konfiguracji, które mogą być zawarte w innych konfiguracjach – np. powtarzalne fragmenty konfiguracji.
- logi serwera
– /var/log/nginx/access.log: ten plik rejestruje każde żądanie, które trafia na serwer, chyba że skonfigurowałeś Nginx do przechowywania w innym pliku lub zrobienia czegoś innego.
– /var/log/nginx / error.log: ten plik rejestruje wszystkie błędy Nginx. W tym miejscu podejdziesz do rozwiązywania problemów, gdy serwer nie działa zgodnie z oczekiwaniami.
podsumowanie
doszliśmy do końca podróży. Zainstalowałeś Nginx na Ubuntu 18.04, skonfigurowane zapory sieciowe, skonfigurowane bloki serwerów i zapewnione witryny są dostępne w przeglądarce. Gratulacje! Teraz to do ciebie należy ustalenie, jakie treści chcesz udostępnić swoim użytkownikom.
Happy Computing!