Jak sprawić, by serwer Nginx nasłuchiwał na wielu portach? ⋆ ALexHost SRL

Sprawdź swoje umiejętności we wszystkich naszych usługach hostingowych i otrzymaj 15% zniżki!

Użyj kodu przy kasie:

Skills
10.12.2024

Jak sprawić, by serwer Nginx nasłuchiwał na wielu portach?

Nginx to wszechstronny serwer WWW i odwrotny serwer proxy, który można skonfigurować do nasłuchiwania na wielu portach, dzięki czemu nadaje się do obsługi różnych stron internetowych, aplikacji lub usług z tego samego serwera. Konfiguracja Nginx do nasłuchiwania na wielu portach może być przydatna do serwowania różnych treści na różnych portach lub do obsługi usług takich jak HTTP (port 80) i HTTPS (port 443). Ten przewodnik pokaże ci, jak skonfigurować Nginx do nasłuchiwania na wielu portach.

Wymagania wstępne

  • Serwer z zainstalowanym i uruchomionym Nginx.
  • Dostęp root lub sudo do modyfikacji plików konfiguracyjnych Nginx.
  • Podstawowa znajomość plików konfiguracyjnych Nginx (nginx.conf i pliki konfiguracyjne specyficzne dla witryny).

Przegląd podstawowej konfiguracji Nginx

Pliki konfiguracyjne Nginx znajdują się zwykle w /etc/nginx/nginx.conf lub w /etc/nginx/sites-available/ dla określonych konfiguracji witryn, w zależności od dystrybucji Linuksa. Główną dyrektywą nasłuchiwania na porcie jest listen, która określa adres IP i port, na którym Nginx powinien nasłuchiwać.

Krok 1: Otwórz plik konfiguracyjny Nginx

Aby skonfigurować Nginx do nasłuchiwania na wielu portach, należy edytować plik konfiguracyjny Nginx. Otwórz plik za pomocą preferowanego edytora tekstu:

sudo nano /etc/nginx/nginx.conf

Lub, jeśli edytujesz konkretną konfigurację witryny:

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

Krok 2: Dodanie wielu dyrektyw nasłuchiwania

Aby Nginx nasłuchiwał na wielu portach, można dodać wiele dyrektyw nasłuchiwania w bloku serwera. Oto przykład bloku serwera nasłuchującego na portach 80 i 8080:

server {
listen 80;
listen 8080;
server_name example.com;
root /var/www/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}

W tej konfiguracji:

  • listen 80; instruuje Nginx, aby nasłuchiwał żądań HTTP na porcie 80.
  • listen 8080; nakazuje Nginx nasłuchiwanie żądań HTTP na porcie 8080.

Oznacza to, że żądania kierowane do http://example.com:80 i http://example.com:8080 będą obsługiwane przez ten blok serwera.

Krok 3: Konfiguracja HTTPS z wieloma portami

Jeśli chcesz włączyć HTTPS na innym porcie (np. 8443), możesz skonfigurować go w następujący sposób:

server {
listen 443 ssl;
listen 8443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key; root /var/www/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}

W tej konfiguracji:

  • listen 443 ssl; sprawia, że Nginx nasłuchuje żądań HTTPS na domyślnym porcie 443.
  • listen 8443 ssl; sprawia, że Nginx nasłuchuje żądań HTTPS na porcie 8443.
  • Certyfikat SSL i ścieżki klucza (ssl_certificate i ssl_certificate_key) są używane do włączenia HTTPS.

Krok 4: Weryfikacja konfiguracji

Po wprowadzeniu zmian ważne jest, aby zweryfikować konfigurację Nginx pod kątem błędów składni przed zastosowaniem zmian. Uruchom:

sudo nginx -t

Jeśli wyjście mówi, że składnia jest w porządku, konfiguracja jest poprawna.

Krok 5: Uruchom ponownie Nginx

Aby zastosować zmiany, uruchom ponownie Nginx:

sudo systemctl restart nginx

Lub, jeśli system korzysta z usługi:

sudo service nginx restart

Krok 6: Testowanie konfiguracji

Aby sprawdzić, czy Nginx poprawnie nasłuchuje na wielu portach:

  1. Check Listening Ports: Użyj netstat lub ss, aby sprawdzić, czy Nginx nasłuchuje na określonych portach:
    sudo netstat -tuln | grep nginx

    lub:
    sudo ss -tuln | grep nginx

    Spowoduje to wyświetlenie listy portów, na których nasłuchuje Nginx. Powinieneś zobaczyć wpisy dla portów 80, 8080, 443 i 8443.
  2. Uzyskaj dostęp do serwera: Otwórz przeglądarkę internetową i spróbuj uzyskać dostęp do serwera przy użyciu różnych portów:
    • http://example.com
    • http://example.com:8080
    • https://example.com
    • https://example.com:8443

    Jeśli konfiguracja została przeprowadzona prawidłowo, powinna zostać wyświetlona ta sama zawartość.

Zaawansowane: Ustawianie różnych treści dla różnych portów

Można skonfigurować różną zawartość, która będzie serwowana w zależności od portu. Na przykład serwowanie różnych katalogów głównych dla każdego portu:

server {
listen 80;
server_name example.com;
root /var/www/html80;
index index.html; location / {
try_files $uri $uri/ =404;
}
}

server {
listen 8080;
server_name example.com;
root /var/www/html8080;
index index.html; location / {
try_files $uri $uri/ =404;
}
}

W tym przykładzie:

  • Żądania do http://example.com (port 80) będą obsługiwać zawartość z /var/www/html80.
  • Żądania na http://example.com:8080 będą obsługiwać zawartość z /var/www/html8080.

Wnioski

Skonfigurowanie Nginx do nasłuchiwania na wielu portach pozwala na obsługę różnych usług, obsługę niestandardowych konfiguracji lub zapewnienie elastyczności w architekturze sieci. Niezależnie od tego, czy potrzebujesz Nginx do obsługi wielu portów HTTP i HTTPS, czy też kierujesz różne porty do różnych treści, dyrektywa nasłuchiwania Nginx ułatwia konfigurację. Pamiętaj tylko, aby zweryfikować konfiguracje, ponownie uruchomić Nginx i przetestować każdy port, aby upewnić się, że wszystko działa zgodnie z oczekiwaniami.

Sprawdź swoje umiejętności we wszystkich naszych usługach hostingowych i otrzymaj 15% zniżki!

Użyj kodu przy kasie:

Skills