Weboldal keresés

Név- és IP-alapú virtuális gépek (szerverblokkok) beállítása az NGINX segítségével


A kifejlesztése és elérhetővé tétele óta eltelt viszonylag rövid idő alatt (valamivel több mint 10 év) az Nginx a webszerverek körében tartós és folyamatos növekedést tapasztalt a nagy teljesítménye és az alacsony memóriahasználat miatt.

Mivel az Nginx ingyenes és nyílt forráskódú szoftver, webszerver-adminisztrátorok ezrei alkalmazták szerte a világon, nemcsak Linux és *nix szervereken, hanem Microsoft Windowson is.

Ne hagyd ki: Apache név- és IP-alapú virtuális tárhely

Az Apache-hoz leginkább szokott közülünk az Nginx tanulási görbéje kissé meredek lehet (legalábbis az én esetemben volt), de minden bizonnyal kifizetődik, ha összeállítunk egy párat. webhelyekről, és megtekintheti a forgalmi és erőforrás-használati statisztikákat.

Ebben a cikkben elmagyarázzuk, hogyan használható az Nginx a névalapú és az ip alapú virtuális tárhely beállítására a CentOS/RHEL rendszerben. 7 szerverek és Debian 8 és származékai, kezdve az Ubuntu 15.04-el és annak melléktermékeivel.

A cikkhez tartozó tesztelési forgatókönyvünk a következő:

  1. Operációs rendszer: Debian 8 Jessie szerver [IP 192.168.0.25]
  2. Átjáró: Router [IP 192.168.0.1]
  3. Webszerver: Nginx 1.6.2-5
  4. Hamis tartományok: www.tecmintlovesnginx.com és www.nginxmeanspower.com.

Az Nginx webszerver telepítése

Ha még nem tette meg, kérjük, telepítse az Nginxet, mielőtt továbblépne. Ha segítségre van szüksége az induláshoz, az nginx gyors keresése ezen az oldalon több cikket is visszaad a témában. Kattintson a nagyító ikonra az oldal tetején, és keressen az nginx kulcsszóra. Ha nem tudja, hogyan keressen cikkeket ezen az oldalon, ne aggódjon, itt linkeket adtunk hozzá az nginx cikkekhez, csak menjen át és telepítse a megfelelő Linux disztribúciók szerint.

  1. Telepítse és fordítsa le az Nginx-et a forrásokból az RHEL/CentOS 7 rendszerben
  2. Telepítse az Nginx Web Servert a Debian 8 rendszerre
  3. Telepítse az Nginxet a MariaDB-vel és a PHP/PHP-FPM-mel a Fedora 23-on
  4. Telepítse az Nginx Web Servert az Ubuntu 15.10 kiszolgálóra/asztalra
  5. Jelszavas védelme Nginx webhelykönyvtárak

Ezután készüljön fel az oktatóanyag további részeinek folytatására.

Névalapú virtuális gazdagépek létrehozása az Nginxben

Biztosan tudja, hogy a virtuális gazdagép egy olyan webhely, amelyet az Nginx egyetlen felhő VPS-ben vagy fizikai szerverben szolgál ki. Az Nginx-dokumentumokban azonban a "szerverblokkok" kifejezést találod helyette, de ezek alapvetően ugyanazok, más-más néven.

A virtuális gazdagépek beállításának első lépése egy vagy több szerverblokk létrehozása (esetünkben kettőt, egyet minden áldomainhez) a fő konfigurációs fájlban (/etc/nginx/nginx.conf ). ) vagy az /etc/nginx/sites-available fájlban.

Bár a konfigurációs fájlok neve ebben a könyvtárban (elérhető webhelyek) tetszőlegesre beállítható, célszerű a tartományok neveit használni, és emellett úgy döntöttünk, hogy hozzáadjuk a .conf kiterjesztéssel jelzi, hogy ezek konfigurációs fájlok.

Ezek a szerverblokkok lehetnek viszonylag összetettek, de alapvető formájukban a következő tartalomból állnak:

Az /etc/nginx/sites-available/tecmintlovesnginx.com.conf oldalon:

server {  
    listen       80;  
    server_name  tecmintlovesnginx.com www.tecmintlovesnginx.com;
    access_log  /var/www/logs/tecmintlovesnginx.access.log;  
    error_log  /var/www/logs/tecmintlovesnginx.error.log error; 
        root   /var/www/tecmintlovesnginx.com/public_html;  
        index  index.html index.htm;  
}

Az /etc/nginx/sites-available/nginxmeanspower.com.conf oldalon:

server {  
    listen       80;  
    server_name  nginxmeanspower.com www.nginxmeanspower.com;
    access_log  /var/www/logs/nginxmeanspower.access.log;  
    error_log  /var/www/logs/nginxmeanspower.error.log error;
    root   /var/www/nginxmeanspower.com/public_html;  
    index  index.html index.htm;  
}

A fenti blokkokkal elindíthatja a virtuális gazdagépek beállítását, vagy létrehozhatja a fájlokat az alapvető vázzal a /etc/nginx/sites-available/default (Debian >) vagy /etc/nginx/nginx.conf.default (CentOS).

A másolás után módosítsa az engedélyeiket és a tulajdonjogukat:

chmod 660  /etc/nginx/sites-available/tecmintlovesnginx.com.conf
chmod 660  /etc/nginx/sites-available/nginxmeanspower.com.conf

Debian és származékai

chgrp www-data  /etc/nginx/sites-available/tecmintlovesnginx.com.conf
chgrp www-data  /etc/nginx/sites-available/nginxmeanspower.com.conf

CentOS és RHEL

chgrp nginx  /etc/nginx/sites-available/tecmintlovesnginx.com.conf
chgrp nginx  /etc/nginx/sites-available/nginxmeanspower.com.conf

Ha végzett, törölje a mintafájlt, vagy nevezze át valami másra, hogy elkerülje a félreértéseket és az ütközéseket.

Kérjük, vegye figyelembe, hogy létre kell hoznia a naplók könyvtárát is (/var/www/logs), és meg kell adnia az Nginx felhasználót (nginx vagy www-data attól függően, hogy CentOS-t vagy Debian-t futtatsz) olvasási és írási engedélyek rajta:

mkdir /var/www/logs
chmod -R 660 /var/www/logs
chgrp <nginx user> /var/www/logs

A virtuális gazdagépeket most engedélyezni kell úgy, hogy létrehoz egy szimbolikus hivatkozást ehhez a fájlhoz a webhelyek engedélyezett könyvtárában:

ln -s /etc/nginx/sites-available/tecmintlovesnginx.com.conf /etc/nginx/sites-enabled/tecmintlovesnginx.com.conf
ln -s /etc/nginx/sites-available/nginxmeanspower.com.conf /etc/nginx/sites-enabled/nginxmeanspower.com.conf

Ezután hozzon létre egy minta html fájlt index.html néven a /var/www//public_html belsejében minden egyes virtuális gazdagéphez (cserélje ki a szükség szerint). Szükség szerint módosítsa a következő kódot:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Tecmint loves Nginx</title>
  </head>
  <body>
  <h1>Tecmint loves Nginx!</h1>
  </body>
</html>

Végül tesztelje az Nginx konfigurációját, és indítsa el a webszervert. Ha bármilyen hiba van a konfigurációban, akkor a rendszer felszólítja a javításra:

nginx -t && systemctl start nginx

és adja hozzá a következő bejegyzéseket a helyi gépen lévő /etc/hosts fájlhoz alapvető névfeloldási stratégiaként:

192.168.0.25 tecmintlovesnginx.com
192.168.0.25 nginxmeanspower.com

Ezután indítson el egy webböngészőt, és lépjen a fent felsorolt URL-ekre:

Ha további virtuális gazdagépeket szeretne hozzáadni az Nginxhez, ismételje meg a fenti lépéseket annyiszor, ahányszor szükséges.

IP-alapú virtuális gazdagépek az Nginxben

Ellentétben a név alapú virtuális gazdagépekkel, ahol az összes gazdagép ugyanazon az IP-címen keresztül érhető el, az IP-alapú virtuális gazdagépekhez eltérő IP:port szükséges. > mindegyik kombináció.

Ez lehetővé teszi, hogy a webszerver különböző webhelyeket küldjön vissza attól függően, hogy milyen IP-címen és porton keresztül érkezik a kérés. Mivel a név alapú virtuális gazdagépek azt az előnyt biztosítják számunkra, hogy megosztjuk az IP-címet és a portot, ezek az általános célú webszerverek szabványai, és ezeket kell választani, kivéve, ha az Nginx telepített verziója nem támogatja a szervernév jelzést. (SNI), vagy azért, mert VALÓBAN elavult verzióról van szó, vagy azért, mert a –with-http_ssl_module fordítási opció nélkül fordították le.

Ha,

nginx -V

nem adja vissza az alábbi kiemelt opciókat:

frissítenie kell az Nginx verzióját, vagy újra kell fordítania, az eredeti telepítési módszertől függően. Az Nginx összeállításához kövesse az alábbi cikket:

  1. Telepítse és fordítsa le az Nginx-et a forrásokból az RHEL/CentOS 7 rendszerben

Feltételezve, hogy jól haladunk, meg kell jegyeznünk, hogy az IP-alapú virtuális gazdagépek másik előfeltétele a különálló IP-címek elérhetősége – akár különálló hálózati interfészekhez rendelve, akár virtuális használatával. IP-címek (más néven IP-aliasing).

Az IP-aliasing végrehajtásához Debianban (feltéve, hogy eth0-t használ), szerkessze a /etc/network/interfaces fájlt a következőképpen:

Debian és származékai

auto eth0:1
iface eth0:1 inet static
        address 192.168.0.25
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.1
auto eth0:2
iface eth0:2 inet static
        address 192.168.0.26
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.1

A fenti példában két virtuális hálózati kártyát hozunk létre az eth0-ból: eth0:1 (192.168.0.25) és eth0:2 (192.168.0.26).

CentOS és RHEL

A CentOS rendszerben nevezze át a /etc/sysconfig/network-scripts/ifcfg-enp0s3 elemet ifcfg-enp0s3:1 névre, és készítsen másolatot ifcfg-enp0s3:2 névre. , majd csak módosítsa a következő sorokat:

DEVICE="enp0s3:1"
IPADDR=192.168.0.25

és

DEVICE="enp0s3:2"
IPADDR=192.168.0.26

Ha elkészült, indítsa újra a hálózati szolgáltatást:

systemctl restart networking

Ezután hajtsa végre a következő módosításokat az ebben a cikkben korábban meghatározott kiszolgálóblokkokon:

Az /etc/nginx/sites-available/tecmintlovesnginx.com.conf oldalon:

listen 192.168.0.25:80

Az /etc/nginx/sites-available/nginxmeanspower.com.conf oldalon:

listen 192.168.0.26:80

Végül indítsa újra az Nginx-et, hogy a változtatások érvénybe lépjenek.

systemctl restart nginx

és ne felejtse el ennek megfelelően frissíteni a helyi /etc/hosts-t:

192.168.0.25 tecmintlovesnginx.com
192.168.0.26 nginxmeanspower.com

Így minden, a 192.168.0.25 és 192.168.0.26 címre küldött kérés a 80 porton visszaküldi a tecmintlovesnginx.com webhelyet és nginxmeanspower.com:

Amint a fenti képeken látható, most két IP-alapú virtuális gazdagépe van, amelyek a szerver egyetlen hálózati kártyáját használják két különböző IP-álnévvel.

Összegzés

Ebben az oktatóanyagban elmagyaráztuk, hogyan állíthat be névalapú és IP-alapú virtuális gazdagépeket az Nginxben. Bár valószínűleg az első lehetőséget szeretné használni, fontos tudnia, hogy a másik lehetőség továbbra is fennáll, ha szüksége van rá – csak győződjön meg arról, hogy ezt a döntést az ebben az útmutatóban felvázolt tények mérlegelése után hozza meg.

Ezenkívül érdemes lehet a könyvjelzők közé tenni az Nginx-dokumentumokat, mert érdemes gyakran hivatkozni rájuk, miközben szerverblokkokat hozunk létre (megvan – most Nginx nyelven beszélünk) és konfiguráljuk őket. Nem fogja elhinni az összes lehetőséget, amely elérhető ennek a kiváló webszervernek a konfigurálásához és hangolásához.

Mint mindig, ne habozzon írjon nekünk az alábbi űrlap segítségével, ha bármilyen kérdése vagy megjegyzése van ezzel a cikkel kapcsolatban. Várjuk visszajelzéseit, és szívesen fogadjuk visszajelzését az útmutatóval kapcsolatban.