Teljes, lépésről lépésre útmutató az Nginx webszerver telepítéséhez és beállításához Ubuntu 20.04 rendszeren
Az Nginx egy nyílt forráskódú és népszerű fordított proxy webszerver, amely több platformon is elérhető. A szoftvert fejlesztette Igor Sysoev A C10K probléma a tízezer kliens egyidejű kezelésének problémája, ami a 2000-es évek elején nem volt egyszerű.
Ebben az oktatóanyagban megvizsgáljuk, hogyan kell telepíteni és beállítani az Nginxet az Ubuntu 20.04 LTS rendszeren.
Előfeltételek
Egy rendszer, amelyen az Ubuntu 20.04 telepítve van, és a sudo
felhasználó. Ezenkívül nem kell más webszervernek lennie, például a 80-as vagy 443-as porton futó Apache-nak.
Az Nginx telepítése
Az Nginx elérhető az Ubuntu 20.04 lerakatában és alkalmas
csomagkezelővel telepíthető. Tehát az Nginx telepítéséhez nyissa meg a terminált a segítségével ctrl+alt+t
és fuss:
sudo apt frissítés && sudo apt install nginx
A telepítés hamarosan befejeződik, és az Nginx démon automatikusan elindul a háttérben. Tehát az Nginx állapotának ellenőrzéséhez futtassa:
sudo systemctl állapota nginx
A fenti parancs futtatása után meg kell kapnia az Nginx állapotát aktív (futó)
zöldben, ahogy lentebb látható.
Az Ubuntu tűzfal (UFW) konfigurálása
Alapértelmezés szerint a HTTP (80) és a HTTPS (443) kimenő portok zárva vannak az Ubuntu 20.04-ben. Ezenkívül az alapértelmezett tűzfaldémon ufw
le van tiltva, mivel az összes port zárva van.
Így az Nginx szerver más rendszerekről való eléréséhez engedélyeznie kell a ufw
és megfelelően állítsa be, hogy engedélyezze a forgalmat a porton 80
és 443
. Mielőtt engedélyezné ufw
, tudja, hogy ha az Nginx-et távoli kiszolgálón állítja be, először frissítse a ufw
szabályok lehetővé teszik ssh
futással:
sudo ufw engedélyezi az ssh-t
A fenti parancs lehetővé teszi a ssh
hozzáférést a távoli szerverhez, anélkül, hogy engedélyeznénk ssh
ki lesz zárva a távoli szerverről.
Az engedélyezés után ssh
hozzáférést, engedélyezheti a ufw
tűzfal démon futtatásával:
sudo ufw engedélyezése
Most meg kell változtatnia a tűzfalszabályokat, hogy engedélyezze a HTTP és HTTPS portokat, hogy az Nginx kiszolgálhassa a webes forgalmat. A szabályok módosításához futtassa:
sudo ufw engedélyezi az 'Nginx Full'-t
Nginx teljes
lehetővé teszi mind a HTTP-, mind a HTTPS-portokat az összes IP-címről érkező és kimenő forgalom számára.
Ezt követően ellenőrizze, hogy a szabályok megfelelően vannak-e hozzáadva ufw
tűzfalat a következő parancs futtatásával:
sudo ufw állapot
A fenti parancs kiírja azokat a szabályokat, amelyeket hozzáadtunk ufw
tűzfal démon.
Csatlakozás az Nginx szerverhez
Most, hogy telepítettük és konfiguráltuk az Nginx-et ufw
a bejövő HTTP és HTTPS webes forgalom engedélyezéséhez hozzá kell férnie az Nginx szerverhez a szerver IP-címének használatával.
Ha nem ismeri a szerver IP-címét, használja az alábbi parancsot a könnyű lekéréshez.
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
Miután megkapta az IP-címet, illessze be a böngészőbe, és nyomja meg az Enter billentyűt.
//szerver-ip
Ha mindent megfelelően konfigurált, akkor látnia kell az „Üdvözöljük az nginxben!” weboldalt.
Nginx fájlok és könyvtárak
Most, hogy az Nginx telepítve van és fut a szerverén. Vessünk egy pillantást néhány fontos Nginx-fájlra és -könyvtárra, amelyeket a webhelye/webalkalmazása konfigurálásához kell használnia.
Webszerver Tartalom
Bármilyen helyet beállíthat, amely a kiszolgálóblokk gyökérkönyvtára legyen. Az Nginx alapértelmezett HTML-je közvetlenül az /var/www/html
, itt található az „üdvözlő” oldal, amelyet korábban elértünk.
Egyéb helyek, amelyeket általában a domainek gyökérkönyvtáraként használnak, a következők:
/itthon//
/var/www/html/
/dönt/
Nginx konfigurációs fájlok
Az összes Nginx konfigurációs fájl itt található /etc/nginx
Könyvtár. Nézzünk meg néhány fontos fájlt, amelyekre szükségünk van egy alapvető domain beállításához.
/etc/nginx/nginx.conf
: Ez a fájl tartalmazza az Nginx futtatásához szükséges összes konfigurációt./etc/nginx/sites-available/
: Ez a könyvtár tartalmazza a tartományok összes szerverblokk-konfigurációját, de jelenleg nincs engedélyezve/telepítve, így az ügyfelek nem érhetik el./etc/nginx/sites-enabled/
: Ebben a könyvtárban találhatók az ügyfelek által elérhető, jelenleg aktív/engedélyezett tartományok. Egy tartomány engedélyezéséhez össze kell kapcsolnunk a tartománykonfigurációs fájltoldalak – elérhetők
hozwebhelyek engedélyezése
Könyvtár./etc/nginx/snippets
/: Ebben a könyvtárban tárolhatjuk a konfiguráció újrafelhasználható szegmenseit. Rengeteg időt takarít meg az éles környezetben, mivel a konfiguráció szegmenseit/blokkjait újra felhasználhatóvá teszi.
Szervernaplók
Az Nginx naplózza az eseményeket/tevékenységeket, és naplófájlokban tárolja őket a /var/log/nginx
Könyvtár. Az Nginx a következő fájlokban naplózza a tevékenységeket:
/var/log/nginx/access.log
: Ez a fájl naplózza azokat az ügyfeleket, akik hozzáfértek az Nginx szerverhez. A részletek közé tartozik a kliens IP-címe, idő és dátum, a szerver eléréséhez használt böngésző és az operációs rendszer./var/log/nginx/error.log
: Ez a fájl naplózza az Nginx szerver által futás közben tapasztalt hibákat.
Tehát ebben a részben röviden áttekintettünk néhány fontos Nginx fájlt és könyvtárat, amelyek elegendőek a kezdéshez.
Szerverblokkok beállítása
Most, hogy rendelkezünk néhány alapvető tudással az Nginx fájlokról és a szerverről, készen állunk saját szerverblokk létrehozására. A szerverblokkok hasonlóak az Apache virtuális gazdagépekhez.
Megnézzük, hogyan hozhatunk létre szerverblokkot, és bemutatjuk, hogy miként fogjuk használni example.com
mint domain a létrehozási folyamatban.
💡 Csere example.com
a domain nevével.
Mielőtt elkezdené a kiszolgálóblokkok konfigurálását, létre kell hoznunk egy könyvtárat, amely a webhelytartalom gyökérkönyvtáraként szolgál. Alkossunk /var/www/example.com/html
könyvtárat használó tartományhoz mkdir
parancs.
sudo mkdir -p /var/www/example.com/html
A -o
opció létrehozza az összes szükséges szülőkönyvtárat. Vagyis teremteni fog example.com
egy szülőkönyvtárat html
ha nem létezik.
Módosítsa a címtár tulajdonjogát a $USER
környezeti változó:
sudo chown -R $USER:$USER /var/www/example.com/html
Ezután hozzon létre egy egyszerűt index.html
fájl, amelyhez akkor fog hozzáférni, amikor meglátogatja a konfigurálandó tartományt. Ez csak magyarázó célt szolgál.
nano /var/www/example.com/html/index.html
Illessze be a következő tartalmat a szerveren most létrehozott fájlba.
Üdvözöljük az example.com oldalon! Jaj! Az example.com elérhető!
nyomja meg ctrl+o
írni és menteni a index.html
fájlt, majd nyomja meg a gombot ctrl+x
kilépni nano
szerkesztő.
Most végre rátérhetünk egy szerverblokk létrehozására, hogy az Nginx ki tudja szolgálni a index.html
amikor néhány felhasználó odamegy example.com
. Tehát egy szerverblokk létrehozásához létre kell hoznunk egy nevű konfigurációs fájlt example.com
ban ben oldalak – elérhetők
Könyvtár. Ehhez a nano-t használjuk, és futtassuk:
sudo nano /etc/nginx/sites-available/example.com
Ezután írja be, vagy másolja/illessze be a következő konfigurációt. Ezután nyomja meg ctrl+o
és írja be és mentse. Hasonlóképpen nyomja meg ctrl+x
a nano szerkesztő bezárásához.
szerver { figyelj 80; figyelj [::]:80; szerver_neve example.com www.example.com; root /var/www/example-domain.com/html; index index.html; hely / { try_files $uri $uri/ =404; } }
A fenti konfiguráció hasonló az alapértelmezett szerverblokk konfigurációhoz, változtattunk gyökér
utasítással az új gyökérkönyvtárunkra mutat, és megváltoztatta a szerver név
domain nevünkre. Amíg a elhelyezkedés{}
Az utasítás hibafogási utasításként szolgál, ha a fájlok nem találhatók, és a 404-es hibát jeleníti meg az ügyfél számára.
Ezután engedélyezhetjük a szerverblokkunkat, hogy az Nginx működjön example.com
weboldalak. A szerverblokk engedélyezéséhez létre kell hoznunk egy szimbolikus hivatkozást example.com
fájltól oldalak – elérhetők
nak nek webhelyek engedélyezése
Könyvtár. Ehhez futtassa:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled
A link létrejön a következő helyen webhely-engedélyezett
könyvtár és most example.com
engedélyezni kell. Most már két szerverblokk van engedélyezve az Nginx szerverünkön, amelyek alapján válaszol a kérésre hallgat
és szerver_neve
helyen mentett direktívák example.com
szerver blokk konfigurációja.
Annak ellenőrzéséhez, hogy az összes konfigurációs fájl helyes-e, és nincs-e szintaktikai hiba, futtassa:
sudo nginx -t
Most végre indítsa újra az Nginxet a módosítások alkalmazásához a következő parancs futtatásával:
sudo systemctl indítsa újra az nginx-et
Az Nginx most elkezdi kiszolgálni a szerverblokkot, ugorhat ide //domain-neve
és élőben tekintheti meg weboldalát.
Jegyzet: Ahhoz, hogy a fenti szakasz működjön, be kell állítania saját domainjét, és le kell cserélnie example.com
saját domain névvel. Ezenkívül be kell állítania a DNS-t a domainhez, hogy az Nginx-kiszolgáló IP-címére mutasson.
Befejezésül megnéztük, hogyan kell telepíteni az Nginxet, konfigurálni ufw
hogy lehetővé tegye a távoli hozzáférést az Nginx szerverhez, távolról csatlakozva az Nginx-hez, megismerkedett néhány alapvető Nginx fájllal és könyvtárral, és megtanulta a szerverblokk beállítását.
Ha többet szeretne tudni az Nginxről, érdemes megnéznie az Nginx wikit.