Nginx

Üdvözlöm, Ön a Nginx szó jelentését keresi. A DICTIOUS-ban nem csak a Nginx szó összes szótári jelentését megtalálod, hanem megismerheted az etimológiáját, a jellemzőit és azt is, hogyan kell a Nginx szót egyes és többes számban mondani. Minden, amit a Nginx szóról tudni kell, itt található. A Nginx szó meghatározása segít abban, hogy pontosabban és helyesebben fogalmazz, amikor beszélsz vagy írsz. ANginx és más szavak definíciójának ismerete gazdagítja a szókincsedet, és több és jobb nyelvi forráshoz juttat.

Főnév

Nginx (tsz. Nginxes)

  1. (informatika, számítógép-hálózatok) Az Nginx (ejtsd: “engine-x”) egy nyílt forráskódú webszerver, amelyet HTTP és más protokollok kiszolgálására, proxy szolgáltatásokra, terheléselosztásra és fordított proxyként használnak. Az Nginx rendkívül hatékony, mivel nemcsak statikus tartalmakat szolgál ki gyorsan, hanem jól skálázódik nagy forgalmú webhelyek esetén is, köszönhetően eseményvezérelt, aszinkron architektúrájának.

Az Nginx-t eredetileg azért hozták létre, hogy kezelje a “C10k” problémát, vagyis hogy egyetlen szerver több mint 10 000 egyidejű kapcsolatot legyen képes kezelni. Az Nginx mára a legnépszerűbb webszerverek közé tartozik, és különösen jól teljesít nagy terhelés alatt, dinamikus alkalmazásokkal együtt.

Főbb jellemzők

  1. Magas teljesítmény és skálázhatóság:
    • Az Nginx nem blokkoló, eseményvezérelt architektúrát használ, amely lehetővé teszi, hogy minimális erőforrásokkal sok egyidejű kapcsolatot kezeljen, különösen statikus tartalmak esetén.
  2. Fordított proxy (Reverse Proxy):
    • Az Nginx képes fordított proxyként működni, ami azt jelenti, hogy elrejti a háttérszervereket, és elosztja a beérkező kéréseket a háttérben futó több szerver között. Ez javítja a biztonságot és a teljesítményt, és lehetővé teszi a terheléselosztást.
  3. Terheléselosztás (Load Balancing):
    • Az Nginx beépített terheléselosztó képességekkel rendelkezik, amelyek lehetővé teszik, hogy a bejövő forgalmat egyenletesen ossza el több háttérszerver között. Ezzel növeli a rendelkezésre állást és javítja a teljesítményt.
  4. Statikus és dinamikus tartalmak kiszolgálása:
    • Az Nginx kiválóan alkalmas statikus fájlok, például HTML, CSS, JavaScript, képek és videók gyors kiszolgálására. Dinamikus tartalmak kiszolgálására is használható más alkalmazásokkal, például PHP, Node.js, Python együttműködésében.
  5. SSL/TLS támogatás:
    • Az Nginx teljes mértékben támogatja a HTTPS protokollt, beleértve az SSL/TLS titkosítást, így biztosítva a webes forgalom biztonságát.
  6. HTTP/2 és gRPC támogatás:
    • Az Nginx támogatja az újabb webprotokollokat, például a HTTP/2-t és a gRPC-t, amelyek növelik a teljesítményt és a hatékonyságot, különösen a modern webalkalmazásokban.
  7. Proxy cache:
    • Az Nginx támogatja a proxy cache-t, amely lehetővé teszi a tartalom gyorsítótárazását, így javítja a teljesítményt és csökkenti a háttérszerverek terhelését.
  8. Főbb használati esetek:
    • Webszerverként statikus tartalmak kiszolgálására.
    • Fordított proxyként vagy terheléselosztóként dinamikus webalkalmazásokhoz (pl. PHP, Node.js).
    • Biztonságos HTTPS kiszolgálóként SSL tanúsítvánnyal.
    • Cache és proxy szerverként, amely gyorsítja a webes válaszidőket.

Nginx telepítése

Az Nginx telepítése viszonylag egyszerű, és a legtöbb Linux disztribúció csomagkezelője támogatja. A telepítés folyamata a rendszertől függően változhat.

Nginx telepítése Ubuntu/Debian rendszeren

  1. A csomagkezelő frissítése:

    sudo apt update
    
  2. Nginx telepítése:

    sudo apt install nginx
    
  3. Nginx indítása:

    Az Nginx szolgáltatás elindítása:

    sudo systemctl start nginx
    
  4. Nginx engedélyezése az automatikus indításhoz:

    Hogy az Nginx automatikusan induljon a rendszer indításakor:

    sudo systemctl enable nginx
    
  5. Tesztelés:

    Miután telepítetted és elindítottad az Nginx-t, a böngészőben látogass el a szerver IP-címére vagy a localhost címre:

    http://localhost

    Ha mindent jól csináltál, megjelenik az Nginx üdvözlő oldala.

Nginx telepítése CentOS/Fedora rendszeren

  1. A csomagkezelő frissítése:

    sudo yum update
    
  2. Nginx telepítése:

    sudo yum install nginx
    
  3. Nginx indítása:

    sudo systemctl start nginx
    
  4. Nginx engedélyezése az automatikus indításhoz:

    sudo systemctl enable nginx
    

Nginx konfiguráció

Az Nginx fő konfigurációs fájlja általában a következő helyen található:

  • Ubuntu/Debian: /etc/nginx/nginx.conf
  • CentOS/Fedora: /etc/nginx/nginx.conf

A konfigurációs fájlok általában több részre vannak osztva, például az alapvető konfigurációra, virtuális hostokra, és további beállításokra.

Alapvető Nginx konfigurációs példa

Az alábbiakban egy egyszerű Nginx konfigurációs fájl látható, amely statikus fájlokat szolgál ki egy adott mappából:

server {
    listen 80;
    server_name example.com;
    
    root /var/www/html;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}

Magyarázat:

  • listen 80: A szerver az alapértelmezett 80-as HTTP porton figyel.
  • server_name: A domain név, amelyet a szerver kiszolgál, például example.com.
  • root: A webhely gyökérkönyvtára, ahol az index fájlok és a statikus tartalmak találhatók.
  • index: Az alapértelmezett fájlok, amelyeket a szerver kiszolgál, ha nincs megadva konkrét fájlnév.
  • location: A kérésekhez tartozó útvonalak kezelése. Itt például ellenőrzi, hogy a kéréshez tartozó fájl létezik-e, ha nem, akkor 404-es hibát ad.

Virtuális hostok beállítása

Az Nginx támogatja a virtuális hostok (Server Blocks) használatát, amelyek lehetővé teszik több domain kezelését egyetlen szerverről. Például, ha két különböző domainhez szeretnél külön konfigurációkat beállítani.

Például egy virtuális host beállítása:

server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/example.com/html;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }

    error_page 404 /404.html;
    location = /404.html {
        internal;
    }
}
  • server_name: Az a domain név, amelyet a szerver kiszolgál (pl. example.com és www.example.com).
  • root: A domainhez tartozó webes fájlok könyvtára.
  • error_page: Testreszabott hibaoldalak, például 404-es hibaoldal beállítása.

SSL/TLS engedélyezése HTTPS-hez

Az Nginx könnyen konfigurálható HTTPS kiszolgálásra. Ehhez SSL tanúsítványt kell használnod, például a Let’s Encrypt tanúsítványt.

Példa HTTPS konfigurációra:

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /etc/ssl/certs

/example.com.crt;
    ssl_certificate_key /etc/ssl/private/example.com.key;

    root /var/www/html;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}
  • listen 443 ssl: A szerver a 443-as HTTPS porton figyel.
  • ssl_certificate és ssl_certificate_key: Az SSL tanúsítvány és a privát kulcs fájlok helye.

Terheléselosztás (Load Balancing) az Nginx-ben

Az Nginx beépített terheléselosztási mechanizmusokat kínál, amelyek lehetővé teszik, hogy a bejövő forgalmat több háttérszerver között ossza szét.

Példa terheléselosztásra:

http {
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
        server backend3.example.com;
    }

    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
}
  • upstream: Definiálja a háttérszervereket, amelyek között az Nginx elosztja a forgalmat.
  • proxy_pass: A forgalom átirányítása a háttérszerverek felé.
  • proxy_set_header: További HTTP fejléceket állít be a proxyzás során, például az eredeti IP-címet és a protokollt.

Nginx gyorsítótárazás

Az Nginx képes gyorsítótárként is működni, tárolva a gyakran használt tartalmakat, hogy javítsa a teljesítményt és csökkentse a háttérszerver terhelését.

Példa egyszerű proxy gyorsítótár beállításra:

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;

server {
    location / {
        proxy_cache my_cache;
        proxy_pass http://backend;
        proxy_cache_valid 200 1h;
        proxy_cache_bypass $http_cache_control;
    }
}

Összegzés

Az Nginx egy hatékony és rugalmas webszerver, amely kiválóan alkalmas statikus és dinamikus tartalmak kiszolgálására, fordított proxyként és terheléselosztóként való működésre. Magas teljesítménye és alacsony erőforrásigénye miatt különösen népszerű nagy forgalmú weboldalak és alkalmazások esetében. Könnyen testreszabható és bővíthető különféle modulokkal és konfigurációkkal, így széleskörűen használják kis- és nagyvállalati környezetben is.