Az Nginx telepítése Debian 12, 11 vagy 10 rendszeren

Az Nginx egy nagy teljesítményű webszerver, amely nagy teljesítményéről és alacsony erőforrás-fogyasztásáról ismert. Eredetileg a C10k probléma kezelésére tervezték, de a statikus tartalom kiszolgálásában, a terheléselosztásban és a fordított proxyzásban jeleskedik. Az Nginx és a stabilitásáról és biztonságáról ismert Debian kombinációja robusztus és megbízható szerverkörnyezetet eredményez.

Az Nginx főbb jellemzői:

  • Nagy teljesítmény: Hatékonyan kezel több egyidejű kapcsolatot.
  • Alacsony erőforrás-használat: Minimális memóriával és CPU-val való működésre optimalizálva.
  • Terheléselosztás: Több szerver között osztja el a forgalmat a jobb teljesítmény érdekében.
  • Fordított proxy: Az ügyfelek kéréseit zökkenőmentesen továbbítja a háttérkiszolgálókhoz.
  • Statikus tartalomkezelés: A statikus fájlokat gyorsan és hatékonyan szolgálja ki.
  • Biztonsági jellemzők: Támogatja az SSL/TLS-t a titkosított kommunikációhoz.
  • Rugalmasság: Támogatja az olyan protokollokat, mint a HTTP, HTTPS, SMTP, POP3 és IMAP.

Az Nginx és a Debian kombinálásának előnyei:

  • Stabilitás: A Debian stabilitásának hírneve biztosítja a szerver megbízhatóságát.
  • Biztonság: A Debian robusztus biztonsági intézkedései megvédik az Nginx szervert a sebezhetőségektől.
  • Könnyű használat: A Debian csomagkezelő rendszere leegyszerűsíti az Nginx telepítését és karbantartását.
  • Közösségi támogatás: Az Nginx és a Debian erős közösségekkel rendelkezik, amelyek kiterjedt erőforrásokat és támogatást nyújtanak.

Ha áttérünk a telepítésre, azt tapasztaljuk, hogy a Debian stabilitása tökéletesen párosul az Nginx hatékonyságával, ideális környezetet teremtve webalkalmazásai számára. Nézzük meg az Nginx Debian szerveren történő telepítéséhez és konfigurálásához szükséges lépéseket.

A rendszer előkészítése az Nginx telepítése előtt

Az Nginx telepítése előtt győződjön meg arról, hogy a rendszer frissítve van. Ez megakadályozza az esetleges konfliktusokat a telepítés során, és csökkenti a kompatibilitási problémák és a biztonsági rések kockázatát.

A rendszercsomagok frissítéséhez futtassa a következőt:

sudo apt update && sudo apt upgrade

Ez a parancs lekéri az elérhető frissítések listáját (via apt update), majd frissíti a jelenlegi szoftvercsomagokat a legújabb verziókra (a apt upgrade).

Telepítse az NGINX webszerver szabványt

Alapértelmezés szerint az NGINX elérhető a Debian-tárolókban. Ez egyszerűvé teszi a telepítési folyamatot.

Futtassa a következő parancsot az nginx telepítéséhez:

sudo apt install nginx

A apt install parancs utasítja az APT csomagkezelő segédprogramot (a Debian rendszer része), hogy telepítse az NGINX csomagot.

Opcionális: Telepítse az NGINX teljes verzióját

Az NGINX kínál a nginx-full verzió további modulokkal, amelyek nem találhatók a szabványos verzióban. Ha több funkcióra van szüksége, telepítse az nginx teljes verzióját:

sudo apt install nginx-full

Opcionális: Telepítse az NGINX-Extras verziót

A még szélesebb szolgáltatáskészlethez fontolja meg a nginx-extras változat. A telepítéshez:

sudo apt install nginx-extras

Az NGINX telepítésének ellenőrzése

A telepítés után győződjön meg arról, hogy az NGINX megfelelően fut.

Ellenőrizze az NGINX szolgáltatás állapotát a következők szerint:

systemctl status nginx

Az NGINX megfelelően működik, ha a kimenet „aktív (fut)” feliratot jelez. Ha nem, a kimenet részletezi a hibát a hibaelhárításhoz.

Ha az NGINX nincs engedélyezve, használja:

sudo systemctl enable nginx --now

Konfigurálja az UFW tűzfalat az Nginx számára

Az UFW vagy az Uncomplicated Firewall könnyen használható felületet biztosít az iptables tűzfalszabályok kezelésére. Alapértelmezés szerint nincs telepítve a Debianra, de letölthető az alapértelmezett tárolókból. Ha a kiszolgáló nyilvános hozzáféréssel rendelkezik, a biztonság érdekében UFW-szabályokat kell beállítania.

Telepítse az UFW tűzfalat

Ha az UFW még nincs telepítve a rendszerére, akkor ezt a következő parancs végrehajtásával teheti meg:

sudo apt install ufw

Engedélyezze az UFW tűzfalat

A telepítés befejezése után a következő parancs futtatásával engedélyezheti az UFW-t:

sudo ufw enable

Az UFW alapértelmezett beállításai blokkolják az összes bejövő kapcsolatot, és engedélyezik az összes kimenőt. Ez azt jelenti, hogy megakadályozza a kéretlen rendszer-hozzáférést, de lehetővé teszi, hogy a rendszer elérje a külvilágot.

A telepített alkalmazások listázása

Az UFW alkalmazásprofilokat használ, amelyek meghatározott alkalmazások szabálykészletei. Az UFW-profillal rendelkező telepített alkalmazások megtekintéséhez futtassa:

sudo ufw app list

UFW-szabályok konfigurálása NGINX-hez

Igényeitől függően beállíthatja az UFW-t úgy, hogy engedélyezze az NGINX kapcsolatokat HTTP-n (80-as porton), HTTPS-en (443-as porton) vagy mindkettőn keresztül.

Csak HTTP (80-as port) esetén:

sudo ufw allow 'Nginx HTTP'

Csak HTTPS (443-as port):

sudo ufw allow 'Nginx HTTPS'

HTTP és HTTPS is:

sudo ufw allow 'Nginx Full'

A tűzfalszabályok ellenőrzése

A szabályok érvényességének ellenőrzéséhez ellenőrizze az aktív tűzfalszabályokat:

sudo ufw status

NGINX konfiguráció tesztelése

Az UFW beállítása után győződjön meg arról, hogy látja az NGINX céloldalát. A böngészőben lépjen a szervere IP-címére:

http://your_server_ip

Vagy helyi beállításokhoz:

http://localhost

Tegyük fel, hogy látja az NGINX alapértelmezett oldalát; a konfigurációd működik. Ezzel véget ér az NGINX tűzfal beállítása a Debian rendszeren.

Hozzon létre NGINX szerverblokkokat

Az Apache virtuális gazdagépeihez hasonlóan az NGINX szerverblokkok lehetővé teszik több tartomány hosztolását egy szerverről. Minden tartománynak megvannak a konfigurációs beállításai. Ebben az útmutatóban cserélje ki az „example.com” címet a tényleges domainnévre.

Hozzon létre egy könyvtárat a domainhez

Állítson be egy könyvtárat a domainhez. Ez a könyvtár fogja tárolni a webhely fájljait:

sudo mkdir -p /var/www/example.com/

Rendeljen tulajdonjogot az Nginx címtárhoz

Rendelje hozzá a címtár tulajdonjogát a „www-data” felhasználóhoz és csoporthoz, amelyet az NGINX általában használ:

sudo chown -R www-data:www-data /var/www/example.com/

Hozzon létre egy Nginx teszt HTML oldalt

Hozzon létre egy teszt HTML oldalt a domain könyvtárában az NGINX beállításának megerősítéséhez:

sudo nano /var/www/example.com/index.html

Adja hozzá a következő HTML kódot:

<html>
 <head>
  <title>Welcome to Example.com</title>
 </head>
 <body>
   <h1>Success! The NGINX server block is working!</h1>
 </body>
</html>

Miután beillesztette a kódot a nano-szerkesztőbe, nyomja le a CTRL+O billentyűkombinációt a módosítások mentéséhez, majd a CTRL+X billentyűkombinációt a szerkesztőből való kilépéshez.

Hozzon létre egy NGINX szerverblokkot a tesztoldalhoz

Állítson be szerverblokkot webhelyéhez:

sudo nano /etc/nginx/sites-available/example.com.conf

Adja hozzá a következő konfigurációt:

server {
 listen 80;
 listen [::]:80;

 root /var/www/example.com/;
 index index.html index.htm index.nginx-debian.html;

 server_name example.com www.example.com;

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

Ez a konfiguráció arra utasítja az NGINX-et, hogy figyelje a bejövő kapcsolatokat a 80-as porton mindkét esetben example.com és www.example.com. Feltétlenül cserélje ki a root direktívát a korábban létrehozott könyvtár elérési útjával.

Engedélyezze az NGINX szerverblokkot szimbolikus linken keresztül

Engedélyezze a szerver blokkolását úgy, hogy hozzon létre egy szimbolikus linket az elérhető webhelyek könyvtárából a webhelyek engedélyezett könyvtárába:

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

Végső konfiguráció és tesztfutás

Végül szerkesztjük az alapértelmezett NGINX konfigurációs fájlt, és tesztüzemet hajtunk végre, hogy minden a várt módon működjön.

Az NGINX konfigurációs fájl szerkesztése

Nyissa meg a nginx.conf fájl:

sudo nano /etc/nginx/nginx.conf

Keresd a vonalat server_names_hash_bucket_size 64; belül a http {} blokkolja és törölje a megjegyzéseket.

Ez az irányelv lehetővé teszi az NGINX számára, hogy hosszú tartományneveket és jelentősebb számú kiszolgálónevet kezeljen azáltal, hogy több memóriát foglal erre a célra. Ügyeljen azonban arra, hogy ezt az értéket ne állítsa túl magasra, mert a szükségesnél több memóriát fogyaszthat.

Mentse el a változtatásokat, és lépjen ki a szerkesztőből a CTRL+O és a CTRL+X billentyűkombináció lenyomásával.

Tesztelje NGINX konfigurációját

Mielőtt továbblépne és újraindítaná az NGINX-et, célszerű ellenőrizni, hogy a konfigurációs szintaxis helyes-e. Futtassa a következő parancsot a teszt futtatásához:

sudo nginx -t

Ha a konfiguráció megfelelő, akkor ezt a kimenetet fogja látni:

nginx: az /etc/nginx/nginx.conf konfigurációs fájl szintaxisa rendben van nginx: konfigurációs fájl /etc/nginx/nginx.conf teszt sikeres

Ezek az üzenetek azt jelzik, hogy az NGINX konfigurációját sikeresen ellenőrizték.

A szerverblokk ellenőrzése

A szerverblokk megfelelő működésének biztosítása érdekében nyissa meg domainjét egy webböngészőben. Látnia kell a tesztoldalt, amely megerősíti, hogy a szerverblokk aktív.

További Nginx-parancsok

A fájlok biztonságának növelése a webszerveren

A webszerveren lévő fájlok és mappák biztonsága a legfontosabb. Kerülje a túlzottan megengedő hozzáférési jogokat. Ezekkel a parancsokkal állíthatja be a megfelelő engedélyeket a webroot összes fájljához és könyvtárához.

Ne felejtse el cserélni /var/www/example.com/ a webroot elérési útjával:

sudo find /var/www/example.com/ -type d -exec chmod 755 "{}" \;
sudo find /var/www/example.com/ -type f -exec chmod 644 "{}" \;

Ezek a parancsok olvasási és végrehajtási jogosultságokat állítanak be a könyvtárak számára, valamint olvasási-írási engedélyeket a fájlok számára a tulajdonos számára. A csoportok és mások csak olvasási hozzáférést kapnak. Módosítsa ezeket az engedélyeket az alkalmazás igényei szerint.

Nginx biztonság az ingyenes SSL-tanúsítvány titkosításával

A HTTPS protokoll használata biztosítja a webszerver biztonságát. A Let's Encrypt ingyenes SSL-tanúsítványt biztosít. Telepítse a certbot csomagot a következővel:

sudo apt install python3-certbot-nginx

Ezután indítsa el a tanúsítvány létrehozását:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com

Cserélje ki az e-mail-címével és a domain nevével. Ez a parancs beállítja a HTTPS-t a szükséges biztonsági funkciókkal.

Az automatikus tanúsítványmegújítás beállítása

Titkosítsuk a tanúsítványokat 90 napig. Állítsa be az automatikus megújításokat a Certbot szkripttel. Tesztelje a folyamatot:

sudo certbot renew --dry-run

Ha sikeres, adja hozzá a megújítási parancsot a crontabhoz:

sudo crontab -e

Naponta éjfélkor újítsd meg ezt a sort:

00 00 */1 * * /usr/sbin/certbot-auto renew

Nginx szervernaplók

Figyelje a szervernaplókat egy jól karbantartott webszerverért. Alapértelmezés szerint a naplók itt találhatók /var/log/nginx. Sorolja fel őket:

cd /var/log/nginx && ls -l

A legrelevánsabb naplófájlok a access.log és error.log. A naplók valós idejű figyeléséhez használja a tail -f parancs, majd a napló elérési útja:

tail -f /var/log/nginx/access.log

Frissítse az Nginx-et

Az Nginx-kiszolgáló frissítése előtt bölcs dolog biztonsági másolatot készíteni a jelenlegi konfigurációkról. Biztonsági másolat készítése a fő nginx.conf fájlt, használja a következő parancsot:

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx-backup.conf

Azokban az esetekben, amikor alaposan testreszabta az Nginx beállításait, érdemes lehet biztonsági másolatot készíteni a teljes Nginx könyvtáráról:

sudo cp -r /etc/nginx/ /etc/nginx-bkup

A konfigurációk biztonságos biztonsági mentése után folytathatja az Nginx frissítését:

sudo apt update
sudo apt upgrade

A konfigurációk rendszeres biztonsági mentése jó gyakorlat, különösen összetett beállítások esetén.

Távolítsa el az Nginx-et

Ha már nincs szüksége az Nginx-re a szerveren, az alábbi lépések végrehajtásával eltávolíthatja. Először győződjön meg arról, hogy az Nginx szolgáltatás leállt:

sudo systemctl disable nginx --now

Ezután teljesen távolítsa el az Nginx csomagot:

sudo apt remove nginx

Még mindig megtalálhatja az Nginx konfigurációk maradványait a /etc/nginx könyvtárat. Ezek eltávolításához használja a következő parancsot:

sudo rm -R /etc/nginx/

Ne feledje, hogy ezzel eltávolítja az összes egyéni konfigurációs fájlt, ezért győződjön meg róla, hogy minden szükséges biztonsági másolatot készít, mielőtt folytatná ezt a lépést.

Állítsa be a naplózási paramétereket az Nginxben

Az Nginx alapértelmezés szerint napi naplóforgatási funkciót tartalmaz. Ezeket a beállításokat azonban igényei szerint testreszabhatja.

Konfigurációs fájl elérése a naplóforgatáshoz

A naplóforgatás beállításainak módosításához hozzá kell férnie a konfigurációs fájlhoz. A következőképpen nyithatja meg a nano szövegszerkesztővel:

sudo nano /etc/nginx/logrotate.d/nginx

A fájl megnyitása után a következőhöz hasonló tartalmat fog látni. Állítsa be az ebben a fájlban található direktívákat, hogy azok megfeleljenek a naplómegőrzési és -forgatási igényeinek, főleg ha olyan megfigyelőeszközöket használ, mint a fail2ban.

Mintanapló-forgatási konfigurációs fájl

/var/log/nginx/*.log {
  daily
  missingok
  rotate 14
  compress
  delaycompress
  notifempty
  create 0640 www-data adm
  sharedscripts
  prerotate
  if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
  run-parts /etc/logrotate.d/httpd-prerotate; \
  fi \
  endscript
  postrotate
  invoke-rc.d nginx rotate >/dev/null 2>&1
  endscript
}

Az elsődleges konfigurációs paraméterek megértése

Ezen a konfiguráción belül a rendszergazdák általában két fő beállításra összpontosítanak:

  1. Napi: Ez a beállítás a napló forgatási gyakoriságát állítja be. Míg alapértelmezés szerint „napi”, módosíthatja „heti” vagy „havi” értékre. A napi forgatás azonban általában leegyszerűsíti a naplókezelést.
  2. Forgatás 14: Ez a szám jelzi a rendszernek, hogy hány naplófájlt kell megőriznie. Például a „14” beállítás megőrzi a 14 legutóbbi naplót. Ha csak egy hét naplót szeretne tárolni, állítsa ezt a számot „7”-re.

Míg az Nginx lehetővé teszi más beállítások módosítását, mindig óvatosan hajtsa végre a változtatásokat. A beállítások módosítása anélkül, hogy megértené azok hatását, váratlan eredményeket okozhat. Győződjön meg arról, hogy ezeket a beállításokat igényeinek megfelelően módosítja anélkül, hogy nemkívánatos problémákat okozna.

Ne feledje, hogy a naplókezelésben nincs mindenkire érvényes megközelítés. Változások előtt mindig mérje fel sajátos környezetét és követelményeit.

Záró gondolatok

Ebben az útmutatóban végigvezettük az Nginx beállítását a Debian rendszeren, lefedve a telepítést, a konfigurációt és az alapvető optimalizálást. Az Nginx hatékonyságának és a Debian stabilitásának kombinálásával szilárd alapot teremtett webszerverének. Ne felejtse el frissíteni a szervert, és fedezze fel a további Nginx modulokat a továbbfejlesztett funkcionalitás érdekében. Ha bármilyen problémába ütközik, a Debian és az Nginx körüli erős közösségek mindig nagyszerű források. Köszönjük, hogy követitek, és jó vendéglátást!

Joshua James

Szólj hozzá!