Jak skonfigurować bloki serwera Nginx (hosty wirtualne) na Rocky Linux 9

Photo of author

By maciekx

Wprowadzenie do Wirtualnych Hostów Nginx

Nginx to powszechnie wykorzystywany, otwarty i efektywny serwer internetowy. Jego popularność wynika z jego zdolności do hostowania stron i aplikacji internetowych, jak również efektywnej obsługi ruchu sieciowego. Na platformie Rocky Linux 9, Nginx umożliwia obsługę wielu witryn za pomocą mechanizmu bloków serwera, znanych też jako wirtualne hosty.

Bloki serwera w Nginx to zbiory reguł, które serwer stosuje, by przetwarzać żądania na podstawie nazwy domeny, adresu IP lub innych kryteriów. Dzięki nim możliwe jest hostowanie wielu niezależnych witryn na jednym serwerze, gdzie każda z nich ma własne pliki, bazy danych i indywidualne konfiguracje.

W tym przewodniku krok po kroku omówimy proces konfiguracji bloków serwera Nginx w środowisku Rocky Linux 9. Szczegółowo przeanalizujemy:

  • Tworzenie plików konfiguracji bloków serwera
  • Ustalanie reguł przekierowań
  • Implementację certyfikatów SSL/TLS
  • Konfigurację odrębnych lokalizacji
  • Przekierowywanie z wykorzystaniem kodów statusu HTTP
  • Diagnostykę i testowanie bloków serwera

Proces Tworzenia Plików Konfiguracyjnych Bloków Serwera

Konfiguracja bloków serwera odbywa się poprzez tworzenie plików tekstowych z rozszerzeniem .conf. Zwykle są one przechowywane w katalogu /etc/nginx/conf.d, ale istnieje możliwość umieszczenia ich w innych lokalizacjach.

Aby utworzyć nowy plik konfiguracji bloku serwera, należy użyć następującego polecenia:

sudo nano /etc/nginx/conf.d/moj-wirtualny-host.conf

W nowo otwartym pliku wklej poniższy podstawowy szablon konfiguracji:


server {
listen 80;
server_name moja-domena.example.com;
root /var/www/html/moja-strona;
index index.html;
}

Ta konfiguracja ustanawia blok serwera, który nasłuchuje na porcie 80 i reaguje na żądania kierowane do domeny moja-domena.example.com. Pliki strony będą pobierane z katalogu /var/www/html/moja-strona.

Definiowanie Reguł Przekierowywania

Reguły przekierowywania umożliwiają zmianę miejsca docelowego żądania. Na przykład, można skonfigurować automatyczne przekierowanie z HTTP do HTTPS. Aby zaimplementować taką funkcjonalność, należy dodać poniższy fragment kodu do pliku konfiguracyjnego bloku serwera:


server {
...
listen 80;
...
location / {
return 301 https://$host$request_uri;
}
}

Ten fragment spowoduje, że wszelkie zapytania HTTP do domeny moja-domena.example.com zostaną przekierowane na wersję HTTPS.

Konfiguracja Certyfikatów SSL/TLS

Certyfikaty SSL/TLS służą do szyfrowania komunikacji między przeglądarką a serwerem. Aby skonfigurować certyfikat SSL/TLS dla bloku serwera, wykonaj poniższe kroki:

1. Wygeneruj klucz prywatny oraz żądanie podpisania certyfikatu (CSR):

openssl req -newkey rsa:4096 -nodes -keyout moj-serwer.key -out moj-serwer.csr

2. Uzyskaj podpisany certyfikat SSL/TLS od autorytetu certyfikacji (CA):

Certyfikat SSL/TLS można pozyskać na wiele sposobów. Możliwe jest użycie bezpłatnych certyfikatów oferowanych przez Let’s Encrypt lub zakup komercyjnego certyfikatu od CA.

3. Skonfiguruj blok serwera tak, by korzystał z certyfikatu SSL/TLS:


server {
...
listen 443 ssl;
server_name moja-domena.example.com;
...
ssl_certificate /etc/letsencrypt/live/moja-domena.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/moja-domena.example.com/privkey.pem;
}

Użycie Lokalizacji

Lokalizacje to elementy konfiguracji służące do grupowania reguł i dyrektyw. Pozwalają one na organizowanie konfiguracji i definiowanie odmiennych zasad dla różnych obszarów witryny.

Aby skonfigurować lokalizację, użyj poniższego wzoru:


server {
...
location /lokalizacja-1 {
...
}
location /lokalizacja-2 {
...
}
}

Przekierowania na Podstawie Kodów Błędu

W sytuacjach wystąpienia błędów, konieczne może być przekierowanie żądania do innej lokalizacji. Przykładowo, gdy pojawi się błąd 404, można przekierować użytkownika na dedykowaną stronę błędu 404. Do tego celu służy dyrektywa:

error_page 404 /brak.html;

Testowanie i Rozwiązywanie Problemów z Blokami Serwera

Po zakończeniu konfiguracji, zaleca się przetestowanie poprawności działania bloków serwera. Do tego celu należy użyć polecenia:

sudo nginx -t

Ewentualne błędy zostaną wyświetlone w konsoli.

Po teście należy ponownie uruchomić Nginx, aby zmiany zostały wprowadzone:

sudo systemctl restart nginx

Podsumowanie

W tym artykule przedstawiliśmy krok po kroku, jak konfigurować bloki serwera Nginx na systemie Rocky Linux 9. Omówiliśmy tworzenie plików konfiguracyjnych, definiowanie przekierowań, implementację certyfikatów SSL/TLS, stosowanie lokalizacji oraz przekierowywanie z uwzględnieniem kodów błędów. Poprawna konfiguracja bloków serwera umożliwia hostowanie wielu witryn na jednym serwerze z zachowaniem wysokiej wydajności i bezpieczeństwa.

Sekcja Często Zadawanych Pytań (FAQ)

1. Ile wirtualnych hostów mogę ustawić w Nginx?
Możesz skonfigurować tyle bloków serwera, ile potrzebujesz.

2. Czy bloki serwera mogą być wykorzystane do hostowania aplikacji internetowych?
Tak, można za ich pomocą obsługiwać aplikacje internetowe, takie jak strony oparte na WordPressie, czy aplikacje napisane w Node.js.

3. Jak sprawdzić logi Nginx, aby diagnozować problemy z konfiguracją?
Logi Nginx zazwyczaj znajdują się w katalogu /var/log/nginx/.

4. Jak zoptymalizować wydajność wirtualnych hostów w Nginx?
Można to osiągnąć poprzez włączenie buforowania, kompresję GZIP, oraz wykorzystanie sieci CDN.

5. Czy Nginx obsługuje protokół HTTP/2?
Tak, Nginx obsługuje HTTP/2 po włączeniu modułu ngx_http_v2_module.

6. Jak zabezpieczyć bloki serwera Nginx przed atakami?
Można użyć zapory WAF, ograniczyć ilość żądań, oraz włączyć uwierzytelnianie dwuskładnikowe.

7. Czy wirtualne hosty Nginx mogą obsługiwać zmienne adresy IP?
Tak, można je skonfigurować tak, by działały z dynamicznymi adresami IP.

8. Czy Nginx jest odpowiedni dla sklepów internetowych?
Tak, ze względu na swoją wydajność i bezpieczeństwo jest dobrym wyborem dla sklepów internetowych.

9. Jak skrócić czas ładowania strony dla bloków serwera Nginx?
Można to zrobić poprzez włączenie buforowania, kompresję GZIP i korzystanie z sieci CDN.

10. Czy bloki serwera Nginx można użyć do obsługi aplikacji mobilnych?
Tak, można skonfigurować wirtualny host dla aplikacji mobilnej i włączyć niezbędne nagłówki CORS.


newsblog.pl