Sobes.tech
Junior

Pentru ce se folosește Nginx?

sobes.tech AI

Răspuns de la AI

Nginx este un server web asincron de înaltă performanță și un proxy invers, utilizat pentru:

  1. Servirea fișierelor statice: Livrare rapidă și eficientă a HTML, CSS, JavaScript, imagini și alte resurse statice. Datorită arhitecturii sale asincrone, poate gestiona un număr mare de conexiuni simultane cu un consum redus de resurse.
  2. Proxy invers: Trimiterea cererilor de la client către unul sau mai mulți servere backend (aplicații, API-uri) și returnarea răspunsurilor către clienți. Acest lucru permite echilibrarea încărcăturii, creșterea securității (ascunderea structurii interne a rețelei) și terminarea SSL.
  3. Echilibrarea încărcăturii: Distribuirea cererilor de intrare între mai multe servere pentru a crește disponibilitatea și scalabilitatea aplicației. Suportă diferite algoritmi (de exemplu, round robin, cele mai puține conexiuni).
  4. Caching: Stocarea în cache a resurselor statice și dinamice pentru a reduce încărcarea pe backend-uri și a accelera răspunsurile.
  5. Terminarea SSL/TLS: Decriptarea traficului HTTPS înainte de a fi trimis către backend, reducând încărcarea pe serverele de aplicații și permițând gestionarea centralizată a certificatelor.
  6. Compresie: Comprimarea datelor (de exemplu, Gzip) înainte de a fi trimise către client pentru a reduce traficul și a accelera încărcarea paginilor.
  7. Limitarea vitezei cererilor: Protejarea backend-urilor împotriva supraîncărcării prin limitarea numărului de cereri de la un client într-un anumit interval de timp.
  8. Firewall web (WAF): Protecție de bază împotriva atacurilor web comune (de exemplu, injecții SQL, XSS).
# Exemplu de configurație Nginx pentru servirea fișierelor statice și proxy API

server {
    listen 80;
    server_name example.com; # Numele domeniului

    location / {
        root /var/www/html; # Calea către fișierele statice
        index index.html;
    }

    location /api/ {
        proxy_pass http://backend_server:8080; # Proxy pentru cererile API către alt server
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}