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:
- 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.
- 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!