Jak zainstalować Nginx na Debianie 12, 11 lub 10

Nginx to potężny serwer WWW znany z wysokiej wydajności i niskiego zużycia zasobów. Pierwotnie zaprojektowany do obsługi problemu C10k, doskonale radzi sobie z obsługą treści statycznych, równoważeniem obciążenia i odwrotnym proxy. Połączenie Nginxa z Debianem, znanym ze stabilności i bezpieczeństwa, skutkuje solidnym i niezawodnym środowiskiem serwerowym.

Kluczowe cechy Nginxa:

  • Wysoka wydajność: Skutecznie obsługuje wiele jednoczesnych połączeń.
  • Niskie wykorzystanie zasobów: Zoptymalizowany do pracy przy minimalnej ilości pamięci i procesora.
  • Równoważenie obciążenia: Rozdziela ruch na wiele serwerów w celu poprawy wydajności.
  • Odwrotne proxy: Płynnie przekazuje żądania klientów do serwerów zaplecza.
  • Obsługa treści statycznych: Szybko i skutecznie obsługuje pliki statyczne.
  • Funkcjonalność związana z bezpieczeństwem: Obsługuje SSL/TLS dla szyfrowanej komunikacji.
  • Elastyczność: Obsługuje protokoły takie jak HTTP, HTTPS, SMTP, POP3 i IMAP.

Korzyści z połączenia Nginx z Debianem:

  • Stabilność: Reputacja Debiana w zakresie stabilności gwarantuje, że Twój serwer pozostanie niezawodny.
  • Bezpieczeństwo: Solidne środki bezpieczeństwa Debiana chronią Twój serwer Nginx przed lukami w zabezpieczeniach.
  • Łatwość użycia: System zarządzania pakietami Debiana upraszcza instalację i konserwację Nginx.
  • Społeczność: Nginx i Debian mają silne społeczności zapewniające szerokie zasoby i wsparcie.

Przechodząc do konfiguracji, przekonasz się, że stabilność Debiana doskonale łączy się z wydajnością Nginx, tworząc idealne środowisko dla Twoich aplikacji internetowych. Zagłębmy się w kroki wymagane do zainstalowania i skonfigurowania Nginx na serwerze Debian.

Przygotowanie systemu przed instalacją Nginx

Przed zainstalowaniem Nginx upewnij się, że Twój system jest zaktualizowany. Zapobiega to potencjalnym konfliktom podczas instalacji i zmniejsza ryzyko problemów ze zgodnością i luk w zabezpieczeniach.

Aby zaktualizować pakiety systemowe, uruchom następujące polecenie:

sudo apt update && sudo apt upgrade

To polecenie pobiera listę dostępnych aktualizacji (poprzez apt update), a następnie aktualizuje bieżące pakiety oprogramowania do ich najnowszych wersji (przy użyciu apt upgrade).

Zainstaluj standard serwera internetowego NGINX

Domyślnie NGINX jest dostępny w repozytoriach Debiana. Dzięki temu proces instalacji jest prosty.

Uruchom następujące polecenie, aby zainstalować Nginx:

sudo apt install nginx

The apt install polecenie informuje narzędzie do obsługi pakietów APT (część systemu Debian), aby zainstalowało pakiet NGINX.

Opcjonalnie: zainstaluj pełną wersję NGINX

NGINX oferuje nginx-full wersja z dodatkowymi modułami, których nie ma w wersji standardowej. Jeśli potrzebujesz większej funkcjonalności, zainstaluj pełną wersję nginx:

sudo apt install nginx-full

Opcjonalnie: zainstaluj wersję NGINX-Extras

Aby uzyskać jeszcze szerszy zestaw funkcji, rozważ nginx-extras wersja. Żeby zainstalować:

sudo apt install nginx-extras

Weryfikacja instalacji NGINX

Po instalacji upewnij się, że NGINX działa poprawnie.

Sprawdź status usługi NGINX za pomocą następujących poleceń:

systemctl status nginx

NGINX działa poprawnie, jeśli wyjście pokazuje „aktywny (działa)”. Jeśli nie, dane wyjściowe wyszczególnią błąd w celu rozwiązania problemu.

Jeśli NGINX nie jest włączone, użyj:

sudo systemctl enable nginx --now

Skonfiguruj zaporę sieciową UFW dla Nginx

UFW, czyli Uncomplicated Firewall, zapewnia łatwy w użyciu interfejs do zarządzania regułami zapory iptables. Nie jest on domyślnie instalowany w Debianie, ale można go pobrać z domyślnych repozytoriów. Jeśli Twój serwer ma dostęp publiczny, powinieneś skonfigurować reguły UFW dla bezpieczeństwa.

Zainstaluj zaporę sieciową UFW

Jeśli UFW nie jest jeszcze zainstalowany w Twoim systemie, możesz to zrobić, wykonując następujące polecenie:

sudo apt install ufw

Włącz zaporę UFW

Po zakończeniu instalacji możesz włączyć UFW, uruchamiając następującą komendę:

sudo ufw enable

Domyślne ustawienia UFW blokują wszystkie połączenia przychodzące i zezwalają na wszystkie połączenia wychodzące. Oznacza to, że zatrzymuje niechciany dostęp do systemu, ale pozwala systemowi dotrzeć do świata zewnętrznego.

Lista zainstalowanych aplikacji

UFW wykorzystuje profile aplikacji, które stanowią zestawy reguł dla konkretnych aplikacji. Aby zobaczyć zainstalowane aplikacje posiadające profile UFW, uruchom:

sudo ufw app list

Konfigurowanie reguł UFW dla NGINX

W zależności od potrzeb możesz skonfigurować UFW tak, aby zezwalał na połączenia NGINX za pośrednictwem protokołu HTTP (port 80), HTTPS (port 443) lub obu.

Tylko dla protokołu HTTP (port 80):

sudo ufw allow 'Nginx HTTP'

Tylko HTTPS (port 443):

sudo ufw allow 'Nginx HTTPS'

Zarówno HTTP, jak i HTTPS:

sudo ufw allow 'Nginx Full'

Weryfikacja reguł zapory sieciowej

Aby potwierdzić, że reguły działają, sprawdź aktywne reguły zapory sieciowej:

sudo ufw status

Testowanie konfiguracji NGINX

Po skonfigurowaniu UFW upewnij się, że widzisz stronę docelową NGINX. W przeglądarce przejdź do adresu IP swojego serwera:

http://your_server_ip

Lub w przypadku konfiguracji lokalnych:

http://localhost

Załóżmy, że widzisz domyślną stronę NGINX; Twoja konfiguracja działa. To kończy konfigurację zapory sieciowej dla NGINX w Debianie.

Twórz bloki serwerów NGINX

Podobnie jak wirtualne hosty Apache, bloki serwerów NGINX umożliwiają hostowanie wielu domen z jednego serwera. Każda domena ma swoje ustawienia konfiguracyjne. W tym przewodniku zastąp „example.com” rzeczywistą nazwą domeny.

Utwórz katalog dla swojej domeny

Skonfiguruj katalog dla swojej domeny. W tym katalogu będą przechowywane pliki Twojej witryny:

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

Przypisz własność do katalogu Nginx

Przypisz własność katalogu do użytkownika i grupy „www-data”, z których zwykle korzysta NGINX:

sudo chown -R www-data:www-data /var/www/example.com/

Utwórz testową stronę HTML Nginx

Utwórz testową stronę HTML w katalogu swojej domeny, aby potwierdzić konfigurację NGINX:

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

Dodaj następujący kod HTML:

<html>
 <head>
  <title>Welcome to Example.com</title>
 </head>
 <body>
   <h1>Success! The NGINX server block is working!</h1>
 </body>
</html>

Po wklejeniu kodu do edytora nano naciśnij CTRL+O, aby zapisać zmiany, a następnie CTRL+X, aby wyjść z edytora.

Utwórz blok serwera NGINX dla strony testowej

Skonfiguruj blokadę serwera dla swojej witryny:

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

Dodaj następującą konfigurację:

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

 root /var/www/example.com/;
 index index.html index.htm index.nginx-debian.html;

 server_name example.com www.example.com;

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

Ta konfiguracja mówi NGINX, aby nasłuchiwał połączeń przychodzących na porcie 80 w obu przypadkach example.com I www.example.com. Pamiętaj o wymianie root dyrektywę ścieżką katalogu, którą utworzyłeś wcześniej.

Włącz blok serwera NGINX poprzez dowiązanie symboliczne

Włącz blok serwera, tworząc dowiązanie symboliczne z katalogu dostępnych witryn do katalogu obsługującego witryny:

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

Ostateczna konfiguracja i uruchomienie testowe

Na koniec zmodyfikujemy domyślny plik konfiguracyjny NGINX i przeprowadzimy uruchomienie testowe, aby upewnić się, że wszystko działa zgodnie z oczekiwaniami.

Edycja pliku konfiguracyjnego NGINX

Otworzyć nginx.conf plik:

sudo nano /etc/nginx/nginx.conf

Poszukaj linii server_names_hash_bucket_size 64; w ciągu http {} zablokuj i odkomentuj.

Ta dyrektywa umożliwia NGINX obsługę długich nazw domen i większej liczby nazw serwerów poprzez przydzielenie do tego celu większej ilości pamięci. Należy jednak zachować ostrożność, aby nie ustawić tej wartości zbyt wysoko, ponieważ może to spowodować zużycie większej ilości pamięci niż jest to potrzebne.

Zapisz zmiany i wyjdź z edytora, naciskając CTRL+O i CTRL+X.

Przetestuj swoją konfigurację NGINX

Zanim przystąpisz do ponownego uruchomienia NGINX, dobrą praktyką jest sprawdzenie, czy składnia konfiguracji jest poprawna. Uruchom następujące polecenie, aby zainicjować uruchomienie testowe:

sudo nginx -t

Jeśli konfiguracja jest poprawna, zobaczysz następujące dane wyjściowe:

nginx: składnia pliku konfiguracyjnego /etc/nginx/nginx.conf jest w porządku nginx: test pliku konfiguracyjnego /etc/nginx/nginx.conf zakończył się pomyślnie

Te komunikaty wskazują, że konfiguracja NGINX została pomyślnie sprawdzona.

Weryfikacja bloku serwera

Aby mieć pewność, że blokowanie serwera działa prawidłowo, otwórz swoją domenę w przeglądarce internetowej. Powinieneś zobaczyć stronę testową potwierdzającą, że blok serwera jest aktywny.

Dodatkowe polecenia Nginx

Zwiększanie bezpieczeństwa plików na serwerze internetowym

Bezpieczeństwo plików i folderów na serwerze internetowym jest najważniejsze. Unikaj zbyt liberalnych praw dostępu. Użyj tych poleceń, aby ustawić prawidłowe uprawnienia do wszystkich plików i katalogów w katalogu webroot.

Pamiętaj o wymianie /var/www/example.com/ ze ścieżką webroot:

sudo find /var/www/example.com/ -type d -exec chmod 755 "{}" \;
sudo find /var/www/example.com/ -type f -exec chmod 644 "{}" \;

Te polecenia ustawiają uprawnienia do odczytu i wykonywania katalogów oraz uprawnienia do odczytu i zapisu plików dla właściciela. Grupy i inne osoby uzyskują dostęp tylko do odczytu. Dostosuj te uprawnienia zgodnie z wymaganiami aplikacji.

Bezpieczeństwo Nginx z bezpłatnym certyfikatem SSL Let's Encrypt

Korzystanie z protokołu HTTPS zapewnia bezpieczeństwo serwera WWW. Let's Encrypt zapewnia bezpłatny certyfikat SSL. Zainstaluj pakiet certbot za pomocą:

sudo apt install python3-certbot-nginx

Następnie rozpocznij tworzenie certyfikatu:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com

Zastąp swoim adresem e-mail i nazwą domeny. To polecenie konfiguruje protokół HTTPS z wymaganymi funkcjami zabezpieczeń.

Konfigurowanie automatycznego odnawiania certyfikatu

Certyfikaty Let's Encrypt obowiązują przez 90 dni. Skonfiguruj automatyczne odnawianie za pomocą skryptu Certbot. Przetestuj proces:

sudo certbot renew --dry-run

Jeśli się powiedzie, dodaj polecenie odnowienia do crontab:

sudo crontab -e

Dołącz tę linię, aby odnawiać codziennie o północy:

00 00 */1 * * /usr/sbin/certbot-auto renew

Dzienniki serwera Nginx

Monitoruj dzienniki serwera, aby zapewnić dobrze utrzymany serwer WWW. Domyślnie dzienniki znajdują się w pliku /var/log/nginx. Wymień je za pomocą:

cd /var/log/nginx && ls -l

Najbardziej odpowiednie pliki dziennika to access.log I error.log. Aby monitorować logi w czasie rzeczywistym, użyj opcji tail -f polecenie, po którym następuje ścieżka do dziennika:

tail -f /var/log/nginx/access.log

Zaktualizuj Nginxa

Przed aktualizacją serwera Nginx mądrze jest utworzyć kopię zapasową bieżących konfiguracji. Aby utworzyć kopię zapasową pliku main nginx.conf plik, użyj następującego polecenia:

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx-backup.conf

W przypadkach, gdy w dużym stopniu dostosowałeś konfigurację Nginx, możesz chcieć wykonać kopię zapasową całego katalogu Nginx:

sudo cp -r /etc/nginx/ /etc/nginx-bkup

Mając bezpieczną kopię zapasową konfiguracji, możesz teraz przystąpić do aktualizacji Nginx:

sudo apt update
sudo apt upgrade

Regularne tworzenie kopii zapasowych konfiguracji jest dobrą praktyką, szczególnie w przypadku złożonych konfiguracji.

Usuń Nginxa

Jeśli nie potrzebujesz już Nginx na swoim serwerze, możesz go usunąć, wykonując poniższe kroki. Najpierw upewnij się, że usługa Nginx jest zatrzymana:

sudo systemctl disable nginx --now

Następnie całkowicie usuń pakiet Nginx:

sudo apt remove nginx

Nadal możesz znaleźć pozostałości konfiguracji Nginx w pliku /etc/nginx informator. Aby je usunąć, użyj polecenia:

sudo rm -R /etc/nginx/

Pamiętaj, że spowoduje to usunięcie wszystkich niestandardowych plików konfiguracyjnych, dlatego przed kontynuowaniem tego kroku upewnij się, że masz kopię zapasową wszystkiego, czego potrzebujesz.

Skonfiguruj parametry rotacji dziennika w Nginx

Nginx domyślnie zawiera funkcję codziennej rotacji dzienników. Możesz jednak dostosować te ustawienia do swoich potrzeb.

Uzyskaj dostęp do pliku konfiguracyjnego w celu rotacji dziennika

Aby zmodyfikować ustawienia rotacji logów, musisz uzyskać dostęp do pliku konfiguracyjnego. Oto jak możesz go otworzyć za pomocą edytora tekstu nano:

sudo nano /etc/nginx/logrotate.d/nginx

Po otwarciu pliku zobaczysz zawartość podobną do poniższej. Dostosuj dyrektywy w tym pliku, aby dopasować je do potrzeb przechowywania i rotacji dzienników, głównie jeśli używasz narzędzi monitorujących, takich jak Fail2ban.

Przykładowy plik konfiguracyjny rotacji dziennika

/var/log/nginx/*.log {
  daily
  missingok
  rotate 14
  compress
  delaycompress
  notifempty
  create 0640 www-data adm
  sharedscripts
  prerotate
  if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
  run-parts /etc/logrotate.d/httpd-prerotate; \
  fi \
  endscript
  postrotate
  invoke-rc.d nginx rotate >/dev/null 2>&1
  endscript
}

Zrozumienie podstawowych parametrów konfiguracyjnych

W ramach tej konfiguracji administratorzy systemu zazwyczaj skupiają się na dwóch głównych ustawieniach:

  1. Codziennie: To ustawienie określa częstotliwość rotacji kłód. Domyślną wartością jest „codziennie”, możesz ją zmienić na „co tydzień” lub „co miesiąc”. Jednak codzienne rotacje zazwyczaj upraszczają zarządzanie dziennikami.
  2. Obróć 14: Ta liczba informuje system, ile plików dziennika należy zachować. Na przykład ustawienie „14” powoduje zachowanie 14 najnowszych dzienników. Jeśli chcesz przechowywać dzienniki tylko przez tydzień, zmień tę liczbę na „7”.

Chociaż Nginx pozwala modyfikować inne ustawienia, zawsze wprowadzaj zmiany ostrożnie. Zmiana ustawień bez zrozumienia ich wpływu może spowodować nieoczekiwane rezultaty. Upewnij się, że modyfikujesz te ustawienia tak, aby odpowiadały Twoim potrzebom, nie powodując niezamierzonych problemów.

Pamiętaj, że nie ma jednego uniwersalnego podejścia do zarządzania dziennikami. Przed wprowadzeniem zmian zawsze oceniaj swoje specyficzne środowisko i wymagania.

Zamykające myśli

W tym przewodniku omówiliśmy konfigurację Nginx na Debianie, obejmując instalację, konfigurację i podstawową optymalizację. Łącząc wydajność Nginx ze stabilnością Debiana, stworzyłeś solidny fundament dla swojego serwera WWW. Pamiętaj, aby aktualizować swój serwer i eksplorować dodatkowe moduły Nginx w celu zwiększenia funkcjonalności. Jeśli napotkasz jakiekolwiek problemy, silne społeczności wokół Debiana i Nginx zawsze będą świetnym źródłem informacji. Dziękujemy za śledzenie i miłego hostingu!

Joshua James
Chodź za mną
Najnowsze posty autorstwa Joshua James (widzieć wszystko)

Dodaj komentarz