Dacă administrezi mai multe site-uri pe un singur server, Server Blocks (cunoscute și ca Virtual Hosts) sunt soluția elegantă. În acest ghid, vei învăța să configurezi blocuri server Nginx pe Rocky Linux 9 pentru a găzdui domenii multiple independent.
Cerințe Preliminare
-
Server Rocky Linux 9
-
Nginx instalat (
sudo dnf install nginx
) -
Drepturi
sudo
-
Nume de domeniu (ex:
site1.ro
,site2.ro
) configurat cu DNS
Pasul 1: Crearea Structurii de Directoare
Pentru fiecare site, creează un director dedicat:
sudo mkdir -p /var/www/site1.ro/html sudo mkdir -p /var/www/site2.ro/html
Atribuie permisiuni corecte:
sudo chown -R nginx:nginx /var/www/site1.ro sudo chmod -R 755 /var/www
Pasul 2: Pagini de Test pentru Site-uri
Generează conținut demonstrativ:
echo "Bun venit pe site1.ro!" | sudo tee /var/www/site1.ro/html/index.html echo "Acesta este site2.ro" | sudo tee /var/www/site2.ro/html/index.html
Pasul 3: Configurare Server Blocks
-
Creează fișier de configurare pentru primul site:
sudo nano /etc/nginx/conf.d/site1.ro.conf
server { listen 80; listen [::]:80; server_name site1.ro www.site1.ro; root /var/www/site1.ro/html; index index.html; location / { try_files $uri $uri/ =404; } }
-
Repetă pentru al doilea site (
site2.ro.conf
) cu valorile corespunzătoare.
Pasul 4: Validare și Pornire
-
Verifică sintaxa:
sudo nginx -t # Trebuie să apară "test is successful"
-
Repornește Nginx:
sudo systemctl restart nginx
-
Activează la boot:
sudo systemctl enable nginx
Pasul 5: Testare Locală via Hosts File (Opțional)
Pentru testare fără DNS, editează /etc/hosts
:
sudo nano /etc/hosts
Adaugă:
127.0.0.1 site1.ro 127.0.0.1 site2.ro
Accesează în browser: http://site1.ro
Pasul 6: Securizare cu HTTPS
-
Instalează Certbot:
sudo dnf install certbot python3-certbot-nginx
-
Emite certificat:
sudo certbot --nginx -d site1.ro -d www.site1.ro
-
Configură reînnoire automată:
sudo certbot renew --dry-run
Structura Cheie a Configurării
Componentă | Cale Configurare |
---|---|
Fișiere site | /var/www/<domeniu>/html |
Configurații server blocks | /etc/nginx/conf.d/ |
Loguri acces/erori | /var/log/nginx/<domeniu>.log |
Depanare Rapidă
-
Eroare 403 Forbidden: Verifică permisiunile (
chown nginx:nginx /var/www/site1.ro
) -
Server_name necunoscut: Confirmă DNS sau fișierul
/etc/hosts
-
Port 80 ocupat: Oprește alte servicii (
sudo systemctl stop httpd
)
De ce Server Blocks?
Beneficii esențiale:
Găzduire nelimitată de domenii pe un singur IP
Izolare completă între site-uri (permisiuni, loguri)
Consum minim de resurse
Best practice:
Folosește
server_names_hash_bucket_size 64;
în/etc/nginx/nginx.conf
pentru domenii lungi!