Instalarea și Configurarea Nginx pe CentOS 7: Un Ghid Complet Pas cu Pas
Nginx este unul dintre cele mai puternice și larg adoptate servere web open-source din lume. Cunoscut pentru performanța sa excepțională, amprenta mică de memorie și capacitatea de a gestiona mii de conexiuni simultane, Nginx este soluția de referință pentru servirea conținutului static, acționând ca proxy invers și efectuând echilibrarea sarcinii pe sisteme distribuite.
Indiferent dacă rulați un blog personal, o platformă de comerț electronic cu trafic ridicat sau o arhitectură complexă de microservicii, Nginx oferă viteza și fiabilitatea pe care o cer utilizatorii dvs. Acest ghid cuprinzător vă ghidează prin fiecare etapă a instalării, configurării, securizării și optimizării Nginx pe un server CentOS 7 — de la pregătirea inițială a sistemului la activarea HTTPS cu un certificat SSL gratuit Let’s Encrypt.
> Cerințe preliminare: Un server CentOS 7 cu acces root sau sudo. Dacă aveți nevoie de un mediu fiabil și de înaltă performanță pentru a urma, luați în considerare explorarea VPS Hosting de la AlexHost — conceput special pentru sarcini exigente cu acces root complet și stocare SSD.
Pasul 1: Actualizați sistemul dvs.
Înainte de a instala orice software nou, este critic să vă asigurați că sistemul dvs. CentOS 7 este complet actualizat. Pachetele învechite pot introduce vulnerabilități de securitate și conflicte de dependență care complică procesul de instalare.
Deschideți terminalul și rulați următoarea comandă:
sudo yum update -yAceastă comandă actualizează toate pachetele instalate la versiunile lor disponibile cele mai recente. Steagul -y confirmă automat toate prompturile, făcând procesul neinteractiv. Permiteți actualizării să se completeze pe deplin înainte de a continua.
Pasul 2: Instalați Nginx via YUM
Nginx nu este disponibil în depozitele implicite CentOS 7. Trebuie mai întâi să instalați depozitul EPEL (Extra Packages for Enterprise Linux), care oferă o gamă largă de pachete software suplimentare pentru distribuții bazate pe RHEL.
Instalați depozitul EPEL:
sudo yum install epel-release -yInstalați Nginx:
sudo yum install nginx -yAceastă comandă descarcă și instalează Nginx împreună cu toate dependențele necesare. După ce instalarea se finalizează, puteți verifica versiunea instalată cu:
nginx -vAr trebui să vedeți o ieșire similară cu:
nginx version: nginx/1.20.xPasul 3: Porniți și activați serviciul Nginx
Cu Nginx instalat, trebuie să porniți serviciul și să-l configurați pentru a se lansa automat de fiecare dată când serverul se repornește.
Porniți serviciul Nginx:
sudo systemctl start nginxActivați Nginx pentru a porni la boot:
sudo systemctl enable nginxVerificați starea serviciului pentru a confirma că rulează:
sudo systemctl status nginxAr trebui să vedeți o ieșire care indică faptul că serviciul este activ (rulează):
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; ...)
Active: active (running) since ...Dacă serviciul nu reușește să pornească, revizuiți jurnalele de erori la /var/log/nginx/error.log pentru informații de diagnosticare.
Pasul 4: Configurați Firewall-ul
CentOS 7 folosește firewalld ca instrument implicit de gestionare a firewall-ului. În mod implicit, traficul HTTP (portul 80) și HTTPS (portul 443) sunt blocate. Trebuie să deschideți explicit aceste porturi pentru a permite traficului web să ajungă la serverul Nginx.
Permiteți traficul HTTP:
sudo firewall-cmd --permanent --add-service=httpPermiteți traficul HTTPS:
sudo firewall-cmd --permanent --add-service=httpsReîncărcați firewall-ul pentru a aplica modificările:
sudo firewall-cmd --reloadVerificați regulile active:
sudo firewall-cmd --list-allAr trebui să vedeți atât http cât și https listate sub secțiunea services a rezultatului. Dacă serverul dvs. este găzduit în spatele unui firewall extern sau al unui grup de securitate (frecvent la furnizorii de cloud), asigurați-vă că acele reguli sunt, de asemenea, actualizate pentru a permite traficul pe porturile 80 și 443.
Pasul 5: Verificați instalarea
Pentru a confirma că Nginx este instalat corect și servește conținut, deschideți un browser web și navigați la adresa IP publică a serverului dvs.:
http://your_server_ipAr trebui să fiți întâmpinați de pagina de bun venit implicită Nginx, care afișează mesajul *"Welcome to nginx!"*. Aceasta confirmă că serverul web este operațional și accesibil din internet.
Dacă nu vedeți pagina de bun venit, verificați din nou următoarele:
- Serviciul Nginx este în execuție (
sudo systemctl status nginx) - Regulile firewall-ului sunt aplicate corect
- Adresa IP a serverului dvs. este corectă
- Niciun alt serviciu (cum ar fi Apache) nu ocupă portul 80
Pasul 6: Configurați Nginx Server Blocks
Nginx folosește server blocks (echivalente funcțional cu virtual hosts-urile Apache) pentru a defini modul în care gestionează cererile pentru diferite domenii sau subdomenii. Fiecare server block este de obicei stocat ca un fișier de configurare separat în interiorul directorului /etc/nginx/conf.d/.
Fișierul principal de configurare Nginx se află la /etc/nginx/nginx.conf. Conține o directivă care încarcă automat toate fișierele .conf din directorul conf.d, păstrând configurația modulară și ușor de gestionat.
Pasul 6a: Creați un nou fișier de configurare Server Block
Creați un nou fișier de configurare pentru domeniul dumneavoastră. Înlocuiți example.com cu numele real al domeniului dumneavoastră:
sudo nano /etc/nginx/conf.d/example.com.confAdăugați următoarea configurare server block:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com/html;
index index.html index.htm index.php;
# Logging
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
location / {
try_files $uri $uri/ =404;
}
# Deny access to hidden files
location ~ /. {
deny all;
}
}Directivele cheie explicate:
| Directivă | Descriere |
|---|---|
listen 80 | Instruiește Nginx să asculte conexiunile primite pe portul 80 (HTTP) |
server_name | Definește numele de domenii la care răspunde acest server block |
root | Specifică directorul rădăcină al documentelor unde sunt stocate fișierele site-ului |
index | Definește fișierele implicite pe care Nginx le va servi atunci când este solicitată o directorie |
try_files | Încearcă să servească URI-ul solicitat ca fișier, apoi ca directorie, și returnează 404 dacă niciunul nu există |
access_log / error_log | Definește fișiere jurnal separate pentru acest virtual host pentru depanare mai ușoară |
Salvați fișierul și ieșiți din editor (Ctrl+X, apoi Y, apoi Enter în nano).
Pasul 7: Creați rădăcina documentului și fișierul de test
Creați directorul rădăcină al documentului pe care l-ați definit în configurația blocului server:
sudo mkdir -p /var/www/example.com/htmlCreați un fișier index.html simplu pentru a verifica dacă blocul server funcționează corect:
echo "<h1>Welcome to Example.com — Powered by Nginx on CentOS 7!</h1>" | sudo tee /var/www/example.com/html/index.htmlSetați proprietatea și permisiunile corecte, astfel încât Nginx să poată citi fișierele:
sudo chown -R nginx:nginx /var/www/example.com/
sudo chmod -R 755 /var/www/example.com/> Notă despre SELinux: CentOS 7 vine cu SELinux activat implicit. Dacă Nginx nu poate citi fișierele dvs. web chiar și cu permisiuni corecte, poate fi necesar să aplicați contextul SELinux corespunzător:
> “`bash
> sudo chcon -Rt httpd_sys_content_t /var/www/example.com/
> “`
Pasul 8: Testați configurația Nginx
Înainte de a reporni Nginx pentru a aplica noua configurație, testați întotdeauna pentru erori de sintaxă. Un fișier incorect configurat poate duce la căderea întregului server web.
Rulați testul de configurație:
sudo nginx -tUn test reușit produce următoarea ieșire:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfulDacă sunt raportate erori, revizuiți cu atenție numerele de linie indicate în fișierele de configurație și corectați orice probleme înainte de a continua.
Reporniți Nginx pentru a aplica modificările:
sudo systemctl restart nginxAlternativ, dacă doriți să reîncărcați configurația fără a întrerupe conexiunile active (recomandat pentru mediile de producție), utilizați:
sudo systemctl reload nginxAcum navigați la domeniul dvs. într-un browser. Ar trebui să vedeți pagina dvs. personalizată index.html.
Pasul 9: Configurați HTTPS cu Let’s Encrypt
Rularea unui site web pe HTTP simplu expune utilizatorii dvs. la potențiale interceptări și atacuri de tip man-in-the-middle. Securizarea site-ului dvs. cu HTTPS nu mai este opțională — este o cerință fundamentală pentru încrederea utilizatorilor, integritatea datelor și clasamentul în motoarele de căutare.
Let’s Encrypt oferă certificate SSL/TLS gratuite, automatizate și de încredere. Puteți explora, de asemenea, Certificate SSL premium de la AlexHost pentru validare extinsă și opțiuni validate de organizație care oferă niveluri mai ridicate de încredere pentru site-urile de afaceri.
Instalați Certbot și pluginul Nginx
sudo yum install certbot python2-certbot-nginx -yObțineți și instalați certificatul SSL
Rulați Certbot cu pluginul --nginx, care modifică automat configurația Nginx pentru a activa HTTPS:
sudo certbot --nginx -d example.com -d www.example.comUrmați prompturile interactive:
- Introduceți adresa dvs. de email pentru notificări de reînnoire
- Acceptați Termenii de Serviciu ai Let’s Encrypt
- Alegeți dacă doriți să redirecționați traficul HTTP la HTTPS (recomandat cu tărie — selectați opțiunea 2)
Certbot va:
- Obține un certificat semnat de la Let’s Encrypt
- Modifice
/etc/nginx/conf.d/example.com.confpentru a include directive SSL - Configureze o redirecționare de la HTTP la HTTPS
După finalizare, verificați configurația HTTPS vizitând:
https://example.comBrowserul dvs. ar trebui să afișeze o pictogramă de lacăt, confirmând că conexiunea este criptată.
Pasul 10: Automatizați Reînnoirea Certificatelor
Certificatele Let's Encrypt sunt valabile pentru 90 de zile. Nerenouirea lor înainte de expirare va determina site-ul dvs. să afișeze avertismente de securitate vizitatorilor, afectând grav încrederea utilizatorilor și traficul.
Testați Procesul de Reînnoire
Înainte de a configura automatizarea, verificați că procesul de reînnoire funcționează corect:
sudo certbot renew --dry-runO rulare de test reușită confirmă că reînnoirea automată va funcționa fără probleme.
Configurați o Sarcină Cron pentru Reînnoire Automată
Deschideți crontab-ul root:
sudo crontab -eAdăugați următoarea linie pentru a verifica și reînnoi certificatele de două ori pe zi (frecvența recomandată):
0 0,12 * * * /usr/bin/certbot renew --quiet --post-hook "systemctl reload nginx"Explicația programului cron:
0 0,12 * * * — Se execută la miezul nopții și la amiază în fiecare zi
--quiet — Suprimă rezultatul decât dacă apare o eroare
--post-hook "systemctl reload nginx" — Reîncarcă Nginx după o reînnoire reușită pentru a aplica noul certificat fără timp de inactivitate
Salvați și ieșiți din editorul crontab. Certificatele SSL se vor reînnoi acum automat, păstrând site-ul dvs. securizat fără nicio intervenție manuală.
Sfaturi de optimizare a performanței pentru Nginx pe CentOS 7
După ce configurația de bază este completă, luați în considerare aceste îmbunătățiri de configurare pentru a maximiza performanța Nginx:
Activați comprimarea Gzip
Adăugați următoarele la nginx.conf în blocul http {} pentru a reduce dimensiunea răspunsurilor trimise clienților:
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css text/xml text/javascript application/javascript application/xml+rss application/json;
Configurați cache-ul browserului
Adăugați anteturi cache-control pentru active statice pentru a reduce încărcarea serverului și a îmbunătăți timpii de încărcare a paginii:
location ~* .(jpg|jpeg|png|gif|ico|css|js|woff|woff2)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
Reglați procesele worker
În /etc/nginx/nginx.conf, setați numărul de procese worker pentru a se potrivi cu numărul de nuclee CPU ale serverului dumneavoastră:
worker_processes auto;
worker_connections 1024;
> Pentru aplicații care necesită resurse intensive sau site-uri web cu trafic ridicat, luați în considerare upgrade-ul la Servere dedicate de la AlexHost, care oferă resurse CPU, RAM și stocare garantate fără efecte de vecini zgomotoși.
Gestionarea mai multor site-uri web cu Nginx
Una dintre cele mai mari puncte forte ale Nginx este capacitatea sa de a găzdui mai multe site-uri web pe un singur server prin blocuri de server. Pentru fiecare domeniu suplimentar, pur și simplu:
Creați un nou .conf fișier în /etc/nginx/conf.d/server_name unicăroot către rădăcina documentului corespunzătoaresudo nginx -t și sudo systemctl reload nginxDacă preferați o interfață grafică pentru gestionarea serverului web, gazdelor virtuale, bazelor de date și conturilor de e-mail, luați în considerare VPS cu cPanel — o soluție de panou de control complet gestionată care simplifică administrarea serverului fără a sacrifica flexibilitatea.
Alternativ, explorați gama completă de Panouri de control VPS disponibile de la AlexHost, inclusiv Plesk, DirectAdmin și alte opțiuni potrivite pentru fluxuri de lucru și preferințe tehnice diferite.
Depanare Probleme Nginx Comune pe CentOS 7
| Problemă | Cauză Probabilă | Soluție | |
|---|---|---|---|
| Nginx nu pornește | Portul 80/443 deja în uz | Rulați `sudo ss -tlnp | grep :80` pentru a identifica procesul conflictual |
| Eroare 403 Forbidden | Permisiuni de fișier incorecte sau context SELinux | Verificați chmod/chown și aplicați chcon pentru SELinux | |
| 502 Bad Gateway | Backend upstream (PHP-FPM, Node.js) nu rulează | Verificați că serviciul backend este activ și socket-ul/portul este corect | |
| Certificat SSL nu se reînnoiește | Certbot nu poate se conecteze la portul 80 | Asigurați-vă că portul 80 este deschis și niciun alt proces nu îl blochează | |
| Modificările nu au efect | Configurația nu a fost reîncărcată | Rulați sudo systemctl reload nginx după fiecare modificare de configurație |
Concluzie
Ați instalat, configurat și securizat cu succes Nginx pe CentOS 7. Serverul dvs. este gata să găzduiască site-uri web cu performanță ridicată, să gestioneze conexiuni simultane eficient și să servească conținut prin conexiuni HTTPS criptate — toate calități esențiale pentru un mediu web modern, de nivel producție.
Iată un rezumat al ceea ce a fost realizat:
- ✅ Actualizat sistemul CentOS 7 și instalat Nginx prin depozitul EPEL
- ✅ Pornit și activat serviciul Nginx pentru pornire automată la boot
- ✅ Configurat firewalld pentru a permite traficul HTTP și HTTPS
- ✅ Creat și configurat un bloc server personalizat pentru un domeniu
- ✅ Setate permisiuni de fișier corecte și contexte SELinux pentru rădăcina documentelor
- ✅ Testat configurația pentru erori de sintaxă înainte de aplicarea modificărilor
- ✅ Securizat site-ul cu un certificat SSL gratuit Let’s Encrypt prin Certbot
- ✅ Automatizat reînnoirea certificatului cu o sarcină cron
Menținerea unui server web sigur și performant necesită atenție continuă. Mențineți Nginx actualizat în mod regulat, monitorizați jurnalele dvs. de acces și erori, și revizuiți configurația pe măsură ce cerințele site-ului dvs. evoluează.
Dacă căutați o bază de găzduire robustă pentru proiectele dvs. bazate pe Nginx, AlexHost oferă un spectru complet de soluții — de la Găzduire Web Partajată de nivel introductiv pentru site-uri mai mici la VPS de înaltă performanță și infrastructură dedicată pentru aplicații exigente. Fiecare plan este susținut de hardware de nivel enterprise, suport tehnic 24/7 și un angajament față de disponibilitate și securitate.
la toate serviciile de găzduire