Jak skonfigurować bloki serwera Nginx (hosty wirtualne) na Rocky Linux 9
Wprowadzenie
Nginx to popularny, lekki i wydajny serwer internetowy typu open source. Jest szeroko stosowany do hostowania witryn internetowych i aplikacji internetowych, a także do obsługi ruchu przychodzącego i wychodzącego. Na serwerze Rocky Linux 9 można skonfigurować Nginx, aby obsługiwał wiele witryn internetowych za pomocą bloków serwera, znanych również jako hosty wirtualne.
Bloki serwera Nginx definiują zestaw reguł, które Nginx używa do obsługi żądań w oparciu o nazwę domeny, adres IP lub inne parametry. Dzięki temu można hostować wiele witryn internetowych na jednym serwerze, z których każda ma własny zestaw plików, baz danych i ustawień.
W tym artykule przeprowadzimy Cię przez proces konfigurowania bloków serwera Nginx na Rocky Linux 9. Omówimy następujące tematy:
* Tworzenie plików bloków serwera
* Definiowanie reguł przekierowywania
* Konfigurowanie certyfikatów SSL/TLS
* Włączanie różnych lokalizacji
* Przekierowywanie żądań na podstawie kodów błędu
* Testowanie i rozwiązywanie problemów z blokami serwera
Tworzenie plików bloków serwera
Bloki serwera są definiowane w plikach tekstowych o nazwach na końcu .conf
. Pliki te są zwykle przechowywane w katalogu /etc/nginx/conf.d
, chociaż można je również przechowywać w innych katalogach.
Aby utworzyć nowy plik bloku serwera, użyj następującego polecenia:
bash
sudo nano /etc/nginx/conf.d/moj_blok_serwera.conf
W pliku bloku serwera wprowadź następującą podstawową strukturę:
nginx
server {
listen 80;
server_name moj_serwer.example.com;
root /var/www/html/moj_serwer;
index index.html;
}
Ta konfiguracja definiuje blok serwera, który będzie nasłuchiwał na porcie 80 i obsługiwał żądania dla nazwy domeny moj_serwer.example.com
. Pliki witryny znajdują się w katalogu /var/www/html/moj_serwer
.
Definiowanie reguł przekierowywania
Reguły przekierowywania są używane do przekierowywania żądań z jednej lokalizacji do innej. Przykładowo, można przekierować wszystkie żądania HTTP na żądania HTTPS. Aby to zrobić, dodaj następującą regułę do bloku serwera:
nginx
server {
...
listen 80;
...
location / {
return 301 https://$host$request_uri;
}
}
Ta reguła przekieruje wszystkie żądania HTTP pod adresem moj_serwer.example.com
do protokołu HTTPS.
Konfigurowanie certyfikatów SSL/TLS
Certyfikaty SSL/TLS są używane do szyfrowania komunikacji między przeglądarką a serwerem. Aby skonfigurować certyfikat SSL/TLS dla bloku serwera, wykonaj następujące kroki:
1. Wygeneruj klucz prywatny i żądanie podpisania certyfikatu (CSR):
bash
openssl req -newkey rsa:4096 -nodes -keyout my_server.key -out my_server.csr
2. Podpisz CSR za pomocą autorytetu certyfikacji (CA):
Istnieje wiele sposobów na uzyskanie podpisanego certyfikatu SSL/TLS. Możesz użyć bezpłatnego certyfikatu Let’s Encrypt lub kupić certyfikat od komercyjnej CA.
3. Skonfiguruj blok serwera do używania certyfikatu SSL/TLS:
nginx
server {
...
listen 443 ssl;
server_name moj_serwer.example.com;
...
ssl_certificate /etc/letsencrypt/live/moj_serwer.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/moj_serwer.example.com/privkey.pem;
}
Włączanie różnych lokalizacji
Lokalizacje to kontenery, które umożliwiają grupowanie zestawów reguł i dyrektyw. Pozwalają one na organizowanie konfiguracji bloku serwera i definiowanie różnych reguł dla różnych części witryny.
Aby włączyć lokalizację, użyj następującej składni:
nginx
server {
...
location /lokalizacja1 {
...
}
location /lokalizacja2 {
...
}
}
Przekierowywanie żądań na podstawie kodów błędu
Czasami może być konieczne przekierowanie żądań do innej lokalizacji na podstawie kodu błędu. Na przykład można przekierować żądania 404 do strony błędu 404. Aby to zrobić, użyj następującej dyrektywy:
nginx
error_page 404 /brak.html;
Testowanie i rozwiązywanie problemów z blokami serwera
Po skonfigurowaniu bloków serwera należy przeprowadzić test i sprawdzić, czy działają prawidłowo. Aby to zrobić, użyj następującego polecenia:
bash
sudo nginx -t
Jeśli wystąpią jakiekolwiek błędy, zostaną one wyświetlone w konsoli.
Po uruchomieniu testu należy ponownie uruchomić Nginx, aby zastosować zmiany:
bash
sudo systemctl restart nginx
Wniosek
W tym artykule omówiliśmy proces konfigurowania bloków serwera Nginx na Rocky Linux 9. Pokazaliśmy, jak tworzyć pliki bloków serwera, definiować reguły przekierowywania, konfigurować certyfikaty SSL/TLS, włączać różne lokalizacje i przekierowywać żądania na podstawie kodów błędów. Dzięki odpowiedniej konfiguracji bloków serwera możesz hostować wiele witryn internetowych na jednym serwerze z zachowaniem wydajności i bezpieczeństwa.
Często zadawane pytania (FAQ)
1. Ile bloków serwera można skonfigurować w Nginx?
Można skonfigurować dowolną liczbę bloków serwera, w zależności od potrzeb.
2. Czy można używać bloków serwera do hostowania aplikacji internetowych?
Tak, bloków serwera można używać do obsługi żądań dla aplikacji internetowych, takich jak strony internetowe WordPress lub aplikacje napisane w Node.js.
3. Jak mogę sprawdzić dzienniki Nginx, aby rozwiązać problemy z blokami serwera?
Dzienniki Nginx znajdują się zazwyczaj w /var/log/nginx/
.
4. Jak mogę zoptymalizować wydajność bloków serwera Nginx?
Istnieje wiele sposobów na optymalizację wydajności bloków serwera Nginx, takich jak włączenie buforowania, kompresja GZIP i użycie sieci dostarczania treści (CDN).
5. Czy Nginx może obsługiwać protokół HTTP/2?
Tak, Nginx może obsługiwać protokół HTTP/2 po włączeniu modułu ngx_http_v2_module
.
6. Jak mogę zabezpieczyć bloki serwera Nginx przed atakami?
Istnieje wiele sposobów na zabezpieczenie bloków serwera Nginx, takich jak włączenie zapory WAF, ograniczenie żądań i użycie uwierzytelniania dwuskładnikowego.
7. Czy mogę używać bloków serwera Nginx do obsługi ruchomych adresów IP?
Tak, można używać bloków serwera Nginx do obsługi ruchomych adresów IP poprzez skonfigurowanie wirtualnego hosta opartego na adresie IP.
8. Czy Nginx jest dobrym wyborem dla witryn e-commerce?
Tak, Nginx jest dobrym wyborem dla witryn e-commerce ze względu na jego wysoką wydajność, bezpieczeństwo i możliwość obsługi wielu witryn internetowych na jednym serwerze.
9. Jak mogę poprawić czas ładowania strony dla bloków serwera Nginx?
Możesz poprawić czas ładowania strony dla bloków serwera Nginx, włączając buforowanie, kompresję GZIP i używając sieci dostarczania treści (CDN).
10. Czy mogę używać bloków serwera Nginx do obsługi aplikacji mobilnych?
Tak, można używać bloków serwera Nginx do obsługi aplikacji mobilnych poprzez skonfigurowanie wirtualnego hosta dla aplikacji i włączenie niezbędnych nagłówków CORS.