Kompletny przewodnik po instalacji i konfiguracji Nginx na Ubuntu [Przyjazny dla początkujących]

1. Wprowadzenie

Wiele osób chce używać Nginx na Ubuntu, ale jeśli jesteś nowy w tej tematyce, możesz nie wiedzieć, od czego zacząć. Ten artykuł zawiera krok po kroku przewodnik dla początkujących, obejmujący wszystko od instalacji i konfiguracji po zarządzanie w środowisku Ubuntu.

Co to jest Nginx?

Nginx (wymawiane „engine‑x”) to wysokowydajny serwer HTTP i serwer proxy odwrotnego. Jest szeroko stosowany na całym świecie ze względu na lekki projekt i elastyczność, szczególnie zdolność obsługi dużych obciążeń ruchu.

Korzyści z używania Nginx na Ubuntu

Ubuntu to popularna dystrybucja Linuksa, która dobrze współpracuje z Nginx. Dzięki systemowi zarządzania pakietami (APT) instalacja i aktualizacja Nginx jest prosta, a oferuje on doskonałą stabilność i bezpieczeństwo.

Czytając ten artykuł, dowiesz się:

  • Jak zainstalować Nginx na Ubuntu
  • Podstawowych procedur konfiguracji i zarządzania
  • Optymalizacji wydajności i rozwiązywania problemów

Teraz zaczynamy.

2. Jak zainstalować Nginx na Ubuntu

Aby uruchomić Nginx na Ubuntu, najpierw musisz go poprawnie zainstalować. Ten rozdział zawiera przejrzysty, krok po kroku przewodnik po procesie instalacji.

Sprawdzanie wymaganych pakietów

Przed rozpoczęciem instalacji upewnij się, że system jest aktualny, uruchamiając następujące polecenia:

sudo apt update
sudo apt upgrade

Instalacja Nginx

Aby zainstalować Nginx, wpisz następujące polecenie:

sudo apt install nginx

To polecenie automatycznie pobiera i instaluje Nginx z repozytorium APT Ubuntu.

Weryfikacja instalacji

Aby sprawdzić, czy instalacja zakończyła się sukcesem, użyj poniższego polecenia, aby sprawdzić status Nginx:

sudo systemctl status nginx

Jeśli w wyniku pojawi się „active (running)”, instalacja zakończyła się pomyślnie.

Konfiguracja zapory (firewall)

Ubuntu zawiera UFW (Uncomplicated Firewall), którego możesz użyć, aby zezwolić na ruch Nginx.

sudo ufw allow 'Nginx Full'
sudo ufw enable

Teraz Nginx jest skonfigurowany do działania na portach 80 (HTTP) i 443 (HTTPS).

3. Podstawowa konfiguracja Nginx na Ubuntu

Samodzielna instalacja Nginx nie wystarczy. Następnie musisz go poprawnie skonfigurować, aby działał efektywnie.

Pliki konfiguracyjne i podstawowa struktura

Główne pliki konfiguracyjne Nginx znajdują się w:

  • Główny plik konfiguracyjny: /etc/nginx/nginx.conf
  • Pliki konfiguracyjne dla poszczególnych witryn: w katalogu /etc/nginx/sites-available/

Zazwyczaj tworzysz plik konfiguracyjny wirtualnego hosta w sites-available i tworzysz dowiązanie symboliczne do sites-enabled, aby go aktywować.

Tworzenie wirtualnego hosta

Wirtualne hosty pozwalają zarządzać wieloma domenami lub projektami na jednym serwerze. Poniższy przykład konfiguruje example.com:

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

Wpisz następującą treść:

server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/example.com/html;
    index index.html index.htm;

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

Zapisz plik i aktywuj konfigurację, wykonując następujące polecenia:

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

Konfiguracja SSL/TLS

Aby włączyć bezpieczną komunikację, skonfiguruj certyfikat SSL/TLS. Możesz użyć Let’s Encrypt, aby uzyskać darmowy certyfikat.

Najpierw zainstaluj certbot:

sudo apt install certbot python3-certbot-nginx

Następnie uruchom poniższe polecenie, aby uzyskać i automatycznie skonfigurować certyfikat SSL:

sudo certbot --nginx -d example.com -d www.example.com

Aby zapobiec wygaśnięciu, skonfiguruj także automatyczne odnawianie certyfikatu.

4. Zarządzanie i kontrola Nginx

Po zainstalowaniu i skonfigurowaniu Nginx musisz nauczyć się, jak uruchamiać, zatrzymywać, przeładowywać konfiguracje oraz rozwiązywać problemy. Ten rozdział omawia podstawowe polecenia zarządzania i techniki rozwiązywania problemów.

Podstawowe polecenia Nginx

W Ubuntu możesz zarządzać Nginx za pomocą polecenia systemctl. Oto kluczowe operacje:

  1. Uruchom Nginx
sudo systemctl start nginx
  1. Zatrzymaj Nginx
sudo systemctl stop nginx
  1. Restart Nginx Wymagany przy wprowadzaniu istotnych zmian w konfiguracji.
sudo systemctl restart nginx
  1. Przeładuj Nginx Zastosuj zmiany w konfiguracji bez ponownego uruchamiania.
sudo systemctl reload nginx
  1. Sprawdź status Nginx Zweryfikuj, czy Nginx działa prawidłowo.
sudo systemctl status nginx

Włączanie automatycznego uruchamiania

Aby zapewnić automatyczne uruchamianie Nginx po ponownym uruchomieniu systemu:

  1. Włącz auto-start
sudo systemctl enable nginx
  1. Wyłącz auto-start (w razie potrzeby)
sudo systemctl disable nginx

Sprawdzanie logów w celu rozzywania problemów

Jeśli Nginx nie działa zgodnie z oczekiwaniami, sprawdź logi, aby znaleźć przyczynę.

  1. Wyświetl logi błędów
sudo tail -f /var/log/nginx/error.log
  1. Wyświetl logi dostępu
sudo tail -f /var/log/nginx/access.log

5. Konfiguracja zapory Nginx i zwiększanie bezpieczeństwa

Bezpieczeństwo jest kluczowe przy obsłudze Nginx. Ten rozdział wyjaśnia, jak skonfigurować porty przy użyciu zapory Ubuntu (UFW) i wzmocnić bezpieczeństwo Nginx.

Otwieranie portów przy użyciu UFW

UFW (Uncomplicated Firewall) to narzędzie zaporowe domyślnie dołączone do Ubuntu. Aby Nginx działał prawidłowo, należy otworzyć porty 80 (HTTP) i 443 (HTTPS).

  1. Sprawdź aktualny status UFW
sudo ufw status
  1. Zezwól na ruch Nginx Uruchom następujące polecenie, aby otworzyć niezbędne porty:
sudo ufw allow 'Nginx Full'
  1. Włącz UFW Jeśli zapora jest wyłączona, włącz ją:
sudo ufw enable

Dodatkowe ulepszenia bezpieczeństwa

  1. Wyłącz niepotrzebne metody HTTP Aby zwiększyć bezpieczeństwo, wyłącz niepotrzebne metody HTTP, dodając poniższe do pliku konfiguracyjnego Nginx:
if ($request_method !~ ^(GET|POST|HEAD)$) {
    return 444;
}
  1. Wyłącz listowanie katalogów Zapobiegaj publicznemu dostępowi do zawartości katalogów, dodając:
autoindex off;
  1. Wzmocnij SSL/TLS Użyj silnych ustawień szyfrowania w konfiguracji SSL:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers HIGH:!aNULL:!MD5;

6. Dostosowywanie wydajności Nginx i rozwiązywanie problemów

Nginx jest powszechnie znany ze swojej wysokiej wydajności, ale odpowiednie dostrojenie może dodatkowo zwiększyć jego efektywność. Ten rozdział omawia techniki optymalizacji i typowe rozwiązania problemów.

Dostosowywanie wydajności

1. Konfiguracja procesów roboczych

Nginx korzysta z architektury wieloprocesowej. Ustawienie odpowiedniej liczby procesów roboczych optymalizuje wydajność.

Edytuj plik konfiguracyjny /etc/nginx/nginx.conf i ustaw:

worker_processes auto;

Ustawienie „auto” automatycznie dostosowuje liczbę procesów roboczych w zależności od liczby rdzeni CPU.

2. Zwiększ liczbę połączeń roboczych

Domyślnie każdy proces roboczy ma ograniczoną liczbę połączeń. Zwiększenie tej wartości poprawia obsługę dużego ruchu.

Dodaj lub zmodyfikuj następującą linię w pliku konfiguracyjnym:

worker_connections 1024;

3. Włącz HTTP/2

Włączenie HTTP/2 poprawia efektywność komunikacji i przyspiesza ładowanie strony.

Zmień plik /etc/nginx/sites-available/example.com i zmień dyrektywę `jący sposób:

listen 443 ssl http2;

Następnie przeładuj Nginx:

sudo systemctl reload nginx

4. Włącz kompresję treści

Kompresowanie plików przed ich wysłaniem zmniejsza zużycie pasma i przyspiesza ładowanie.

Dodaj lub włącz następujące ustawienia:

gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

5. Skonfiguruj buforowanie

Konfiguracja buforowania zmniejsza liczbę powtarzających się żądań o zasoby statyczne.

Dodaj następującą konfigurację:

location ~* .(jpg|jpeg|png|gif|ico|css|js|woff|woff2|ttf|svg)$ {
    expires 30d;
    access_log off;
}

Typowe rozwiązywanie problemów

1. Wolne przetwarzanie żądań przy dużym obciążeniu

  • Przyczyna: Niewystarczająca liczba procesów roboczych lub limity połączeń.
  • Rozwiązanie: Dostosuj liczbę procesów roboczych i połączenia, lub rozważ użycie load balancera.

2. Błąd „403 Forbidden”

  • Przyczyna: Nieprawidłowa dyrektywa root w pliku konfiguracyjnym lub nieprawidłowe uprawnienia plików.
  • Rozwiązanie: Sprawdź dyrektywę root i zaktualizuj uprawnienia plików:
sudo chmod -R 755 /var/www/example.com/html
sudo chown -R www-data:www-data /var/www/example.com/html

3. Problemy z limitami czasu serwera

  • Przyczyna: Długi czas przetwarzania żądania.
  • Rozwiązanie: Dostosuj ustawienia timeoutu:
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_send_timeout 300;

4. Błędy przy ponownym uruchamianiu Nginx

  • Przyczyna: Błędy w pliku konfiguracyjnym.
  • Rozwiązanie: Przetestuj konfigurację przed ponownym uruchomieniem:
sudo nginx -t

7. Podsumowanie i kolejne kroki

W tym przewodniku omówiliśmy, jak zainstalować, skonfigurować i zarządzać Nginx na Ubuntu. Przejrzyjmy, czego się nauczyliśmy i rozważmy kolejne kroki.

Podsumowanie kluczowych punktów

1. Instalacja Nginx na Ubuntu

  • Przygotowano wymagane pakiety i zainstalowano Nginx przy użyciu APT.
  • Skonfigurowano zaporę, aby zezwolić na ruch Nginx.

2. Podstawowa konfiguracja

  • Zrozumiano strukturę pliku konfiguracyjnego Nginx i skonfigurowano wirtualne hosty oraz SSL/TLS.

3. Zarządzanie Nginx

  • Nauczyliśmy się podstawowych poleceń do uruchamiania, zatrzymywania i przeładowywania Nginx.
  • Sprawdzono logi w celu rozwiązywania problemów.

4. Zwiększenie bezpieczeństwa

  • Skonfigurowano UFW i zastosowano dodatkowe ustawienia zabezpieczeń.

5. Optymalizacja wydajności i rozwiązywanie problemów

  • Zoptymalizowano procesy robocze, włączono HTTP/2 i skonfigurowano buforowanie.
  • Rozwiązano typowe problemy z Nginx.

Kolejne kroki

Teraz, gdy znasz podstawy Nginx na Ubuntu, rozważ następujące kroki:

  • Poznaj zaawansowane konfiguracje, takie jak load balancing i reverse proxy.
  • Zwiększ bezpieczeństwo przy użyciu WAF i dodatkowych modułów zabezpieczeń Nginx.
  • Automatyzuj wdrożenia przy użyciu Ansible lub Docker.
  • Monitoruj wydajność przy pomocy narzędzi takich jak Prometheus i Grafana.

Stosując te koncepcje, możesz skutecznie uruchamiać i zarządzać wysokowydajnym serwerem WWW z Nginx na Ubuntu.

侍エンジニア塾