Kako namestiti virtualne gostitelje na osnovi imen in IP (strežniški bloki) z NGINX


V relativno kratkem času, odkar je bil razvit in na voljo (nekaj več kot 10 let), je Nginx zaradi svoje visoke zmogljivosti in nizke porabe pomnilnika doživel stalno in stalno rast med spletnimi strežniki.

Ker je Nginx brezplačna in odprtokodna programska oprema, so ga sprejeli na tisoče skrbnikov spletnih strežnikov po vsem svetu, ne samo v strežnikih Linux in * nix, temveč tudi v sistemu Microsoft Windows.

Za tiste, ki smo najbolj vajeni Apacheja, ima Nginx morda nekoliko strmo učno krivuljo (vsaj to je bil moj primer), vendar se zagotovo izplača, ko nastavite nekaj spletnih mest in začnete videti statistiko prometa in porabe virov.

V tem članku bomo razložili, kako uporabiti Nginx za nastavitev navideznega gostovanja na osnovi imen in ip na strežnikih CentOS/RHEL 7 ter Debian 8 in izpeljanih finančnih instrumentih, začenši z Ubuntu 15.04 in njegovimi deli.

  1. Operacijski sistem: strežnik Debian 8 Jessie [IP 192.168.0.25]
  2. Prehod: Usmerjevalnik [IP 192.168.0.1]
  3. Spletni strežnik: Nginx 1.6.2-5
  4. Lažni domeni: www.tecmintlovesnginx.com in www.nginxmeanspower.com.

Namestitev spletnega strežnika Nginx

Če tega še niste storili, namestite Nginx, preden nadaljujete. Če za začetek potrebujete pomoč, bo hitro iskanje nginxa na tej strani vrnilo več člankov na to temo. Kliknite ikono povečevalnega stekla na vrhu te strani in poiščite ključno besedo nginx. Če ne veste, kako iskati članke na tem spletnem mestu, ne skrbite, tukaj smo dodali povezave do člankov nginx, preprosto pojdite in jih namestite v skladu z vašimi distribucijami Linuxa.

  1. Namestite in prevedite Nginx iz virov v RHEL/CentOS 7
  2. Namestite spletni strežnik Nginx v Debian 8
  3. Namestite Nginx z MariaDB in PHP/PHP-FPM na Fedora 23
  4. Namestite spletni strežnik Nginx na strežnik/namizje Ubuntu 15.10
  5. Zaščitite imenike spletnih mest Nginx z geslom

Nato se pripravite na nadaljevanje te preostale vaje.

Ustvarjanje navideznih navideznih gostiteljev v Nginxu

Kot sem prepričan, da že veste, je navidezni gostitelj spletno mesto, ki ga Nginx streže v enem oblačnem VPS ali fizičnem strežniku. Vendar boste v dokumentih Nginx namesto tega našli izraz \"strežniški bloki \" , vendar gre v bistvu za isto stvar, ki jo imenujejo različna imena.

Prvi korak za nastavitev navideznih gostiteljev je ustvariti enega ali več strežniških blokov (v našem primeru bomo ustvarili dva, po enega za vsako navidezno domeno) v glavni konfiguracijski datoteki (/etc/nginx/nginx.conf) ali znotraj/itd./nginx/spletna mesta so na voljo.

Čeprav lahko ime konfiguracijskih datotek v tem imeniku (spletna mesta so na voljo) nastavite na poljubno, je dobro, da uporabite ime domen, poleg tega pa smo se odločili, da dodamo še .conf pripona, ki označuje, da gre za konfiguracijske datoteke.

Ti strežniški bloki so lahko razmeroma zapleteni, vendar so v svoji osnovni obliki sestavljeni iz naslednje vsebine:

V /etc/nginx/sites-available/tecmintlovesnginx.com.conf:

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;  
}

V /etc/nginx/sites-available/nginxmeanspower.com.conf:

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;  
}

Z zgornjimi bloki lahko začnete nastavljati navidezne gostitelje ali pa ustvarite datoteke z osnovnim okostjem iz/etc/nginx/sites-available/default (Debian) ali /etc/nginx/nginx.conf.default CentOS).

Ko jih kopirate, spremenite njihova dovoljenja in lastništvo:

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

Ko končate, odstranite vzorčno datoteko ali jo preimenujte v nekaj drugega, da se izognete zmedi ali konfliktom.

Upoštevajte, da boste morali ustvariti tudi imenik za dnevnike (/var/www/logs ) in uporabniku Nginx (nginx ali www-data), odvisno od tega, ali uporabljate CentOS ali Debian ) dovoljenja za branje in pisanje nad njim:

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

Zdaj je treba navidezne gostitelje omogočiti tako, da v imeniku s spletnimi mesti ustvarite simbolno povezavo do te datoteke:

# 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

Nato ustvarite vzorčno datoteko html z imenom index.html znotraj /var/www//public_html za vsakega od navideznih gostiteljev (zamenjajte kot potrebno). Po potrebi spremenite naslednjo kodo:

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

Na koncu preizkusite konfiguracijo Nginx in zaženite spletni strežnik. Če so v konfiguraciji napake, boste pozvani, da jih popravite:

# nginx -t && systemctl start nginx

in v datoteko /etc/hosts v lokalni napravi dodajte naslednje vnose kot osnovno strategijo za razreševanje imen:

192.168.0.25 tecmintlovesnginx.com
192.168.0.25 nginxmeanspower.com

Nato zaženite spletni brskalnik in pojdite na zgoraj navedene URL-je:

Če želite v Nginx dodati več navideznih gostiteljev, zgoraj opisane korake ponovite tolikokrat, kot je potrebno.

Virtualni gostitelji na osnovi IP na Nginxu

V nasprotju z navideznimi gostitelji, ki temeljijo na imenih, kjer so vsi gostitelji dostopni z istim naslovom IP, navidezni gostitelji, ki temeljijo na IP, zahtevajo drugačno kombinacijo IP: port .

To spletnemu strežniku omogoča, da vrne različna spletna mesta, odvisno od naslova IP in vrat, kamor je prejeta zahteva. Ker nam navidezni gostitelji, ki temeljijo na poimenovanjih, dajejo prednost skupni uporabi naslova IP in vrat, so standard za splošne spletne strežnike in bi morali biti izbrana nastavitev, razen če vaša nameščena različica Nginxa ne podpira navedbe imena strežnika (SNI) , bodisi zato, ker gre za RES zastarelo različico bodisi zato, ker je bila prevedena brez možnosti prevajanja –with-http_ssl_module.

Če

# nginx -V

ne vrne poudarjenih možnosti spodaj:

boste morali posodobiti svojo različico Nginxa ali jo znova sestaviti, odvisno od prvotnega načina namestitve. Za sestavljanje Nginxa sledite spodnjemu članku:

  1. Namestite in prevedite Nginx iz virov v RHEL/CentOS 7

Ob predpostavki, da gremo dobro, moramo opozoriti, da je še en predpogoj za navidezne gostitelje, ki temeljijo na IP, razpoložljivost ločenih IP-jev - bodisi z dodeljevanjem ločenim omrežnim vmesnikom bodisi z uporabo navideznih IP-jev (znanih tudi kot vzdevek IP-jev) ).

Če želite izvesti vzdevek IP v Debianu (ob predpostavki, da uporabljate eth0), uredite /etc/network/interfaces , kot sledi:

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

V zgornjem primeru ustvarimo dve navidezni omrežni kartici iz eth0: eth0: 1 (192.168.0.25) in eth0: 2 (192.168.0.26).

V CentOS preimenujte/etc/sysconfig/network-scripts/ifcfg-enp0s3 kot ifcfg-enp0s3: 1 in naredite kopijo kot ifcfg-enp0s3: 2 , nato pa samo spremenite naslednje vrstice:

DEVICE="enp0s3:1"
IPADDR=192.168.0.25

in

DEVICE="enp0s3:2"
IPADDR=192.168.0.26

Ko končate, znova zaženite omrežno storitev:

# systemctl restart networking

Nato naredite naslednje spremembe strežniških blokov, ki so bili prej definirani v tem članku:

V /etc/nginx/sites-available/tecmintlovesnginx.com.conf:

listen 192.168.0.25:80

V /etc/nginx/sites-available/nginxmeanspower.com.conf:

listen 192.168.0.26:80

Na koncu ponovno zaženite Nginx, da bodo spremembe začele veljati.

# systemctl restart nginx

in ne pozabite ustrezno posodobiti lokalnih /etc/hosts :

192.168.0.25 tecmintlovesnginx.com
192.168.0.26 nginxmeanspower.com

Tako bo vsaka zahteva, poslana na 192.168.0.25 in 192.168.0.26 na vratih 80, vrnila tecmintlovesnginx.com oziroma nginxmeanspower.com:

Kot lahko vidite na zgornjih slikah, imate zdaj dva IP navidezna gostitelja, ki uporabljata edino omrežno kartico v strežniku z dvema različnima vzdevkoma IP.

Povzetek

V tej vadnici smo razložili, kako v Nginxu nastaviti navidezne gostitelje, ki temeljijo na imenih in na IP-jih. Čeprav boste verjetno želeli uporabiti prvo možnost, je pomembno vedeti, da je druga možnost še vedno na voljo, če jo potrebujete - samo se prepričajte, da ste se odločili po preučitvi dejstev, opisanih v tem priročniku.

Poleg tega boste morda želeli dokumente Nginx dodati med zaznamke, saj se je med ustvarjanjem strežniških blokov (tam imate - zdaj se pogovarjamo v jeziku Nginx) in njihovo konfiguriranje vredno in dobro sklicevati nanje. Ne boste verjeli vsem možnostim, ki so na voljo za konfiguriranje in uglaševanje tega izjemnega spletnega strežnika.

Kot vedno, če imate kakršna koli vprašanja ali komentarje glede tega članka, nam pošljite vrstico s pomočjo spodnjega obrazca. Veselimo se vašega odziva in vaše povratne informacije o tem vodniku so nadvse dobrodošle.