Cum să faceți serverul Nginx să asculte pe mai multe porturi
Nginx este un server web versatil și un proxy invers care poate fi configurat să asculte pe mai multe porturi, ceea ce îl face potrivit pentru a servi diferite site-uri web, aplicații sau servicii de pe același server. Configurarea Nginx pentru a asculta pe porturi multiple poate fi utilă pentru a servi conținut diferit pe porturi diferite sau pentru a sprijini servicii precum HTTP (portul 80) și HTTPS (portul 443). Acest ghid vă va arăta cum să configurați Nginx pentru a asculta pe mai multe porturi.
Condiții prealabile
- Un server cu Nginx instalat și care rulează.
- Acces Root sau sudo pentru a modifica fișierele de configurare Nginx.
- O înțelegere de bază a fișierelor de configurare Nginx (nginx.conf și fișierele de configurare specifice site-ului).
Prezentare generală a configurației de bază Nginx
Fișierele de configurare ale Nginx sunt localizate de obicei în /etc/nginx/nginx.conf sau în /etc/nginx/sites-available/ pentru configurațiile specifice site-ului, în funcție de distribuția Linux. Principala directivă pentru ascultarea pe un port este listen, care specifică adresa IP și portul pe care Nginx trebuie să asculte.
Pasul 1: Deschideți fișierul de configurare Nginx
Pentru a configura Nginx să asculte pe mai multe porturi, trebuie să editați fișierul de configurare Nginx. Deschideți fișierul utilizând editorul de text preferat:
sudo nano /etc/nginx/nginx.conf
Sau, dacă editați configurația unui site specific:
sudo nano /etc/nginx/sites-available/example.conf
Pasul 2: Adăugarea mai multor directive de ascultare
Pentru ca Nginx să asculte pe mai multe porturi, puteți adăuga mai multe directive listen în cadrul unui bloc de server. Iată un exemplu de bloc server care ascultă pe porturile 80 și 8080:
server {
ascultați 80;
listen 8080;
server_name example.com;
root /var/www/html;
index index.html;
locație / {
try_files $uri $uri/ =404;
}
}
În această configurație:
- listen 80; instruiește Nginx să asculte solicitările HTTP pe portul 80.
- listen 8080; instruiește Nginx să asculte solicitările HTTP pe portul 8080.
Aceasta înseamnă că solicitările făcute către http://example.com:80 și http://example.com:8080 vor fi gestionate de acest bloc de server.
Pasul 3: Configurarea HTTPS cu porturi multiple
Dacă doriți să activați HTTPS pe un port diferit (de exemplu, 8443), îl puteți configura astfel:
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;
locație / {
try_files $uri $uri/ =404;
}
}
În această configurație:
- listen 443 ssl; face ca Nginx să asculte cererile HTTPS pe portul implicit 443.
- listen 8443 ssl; face ca Nginx să asculte cererile HTTPS pe portul 8443.
- Căile de acces la certificatul și cheia SSL (ssl_certificate și ssl_certificate_key) sunt utilizate pentru a activa HTTPS.
Pasul 4: Verificarea configurației
După efectuarea modificărilor, este esențial să verificați configurația Nginx pentru erori de sintaxă înainte de a aplica modificările. Rulați:
sudo nginx -t
Dacă ieșirea spune că sintaxa este ok, configurația este corectă.
Pasul 5: Reporniți Nginx
Pentru a aplica modificările, reporniți Nginx:
sudo systemctl restart nginx
Sau, dacă sistemul dvs. utilizează serviciul:
sudo service nginx restart
Pasul 6: Testarea configurației
Pentru a verifica dacă Nginx este ascultat corect pe mai multe porturi:
- Verificați porturile de ascultare: Utilizați netstat sau ss pentru a verifica dacă Nginx este ascultat pe porturile specificate:
sudo netstat -tuln | grep nginx
sau:sudo ss -tuln | grep nginx
Aceasta va afișa o listă a porturilor pe care Nginx le ascultă. Ar trebui să vedeți intrări pentru porturile 80, 8080, 443 și 8443. - Accesați serverul: Deschideți browserul web și încercați să accesați serverul utilizând diferite porturi:
- http://example.com
- http://example.com:8080
- https://example.com
- https://example.com:8443
Ar trebui să vedeți același conținut servit dacă configurația a fost făcută corect.
Advanced: Setarea unui conținut diferit pentru porturi diferite
Puteți configura conținut diferit care să fie servit în funcție de port. De exemplu, servirea unor directoare rădăcină diferite pentru fiecare port:
server {
listen 80;
server_name example.com;
rădăcină /var/www/html80;
index index.html; locație / {
try_files $uri $uri/ =404;
}
}
server {
listen 8080;
server_name example.com;
root /var/www/html8080;
index index.html; locație / {
try_files $uri $uri/ =404;
}
}
În acest exemplu:
- Cererile către http://example.com (portul 80) vor servi conținut din /var/www/html80.
- Solicitările către http://example.com:8080 vor servi conținut din /var/www/html8080.
Concluzii
Configurarea Nginx pentru a asculta pe mai multe porturi vă permite să serviți diferite servicii, să suportați configurații personalizate sau să oferiți flexibilitate în arhitectura rețelei dvs. Fie că aveți nevoie ca Nginx să gestioneze mai multe porturi HTTP și HTTPS sau să direcționeze porturi diferite către conținut diferit, directiva listen a Nginx facilitează configurarea. Asigurați-vă doar că verificați configurațiile, reporniți Nginx și testați fiecare port pentru a vă asigura că totul funcționează conform așteptărilor.