Nime- ja IP-põhiste virtuaalsete hostide (serveriblokkide) seadistamine NGINX-iga


Selle väljatöötamisest ja kättesaadavaks tegemisest (veidi üle 10 aasta) suhteliselt lühikese aja jooksul on Nginx oma suure jõudluse ja vähese mälukasutuse tõttu veebiserverite seas püsivat ja kindlat kasvu kasvanud.

Kuna Nginx on tasuta ja avatud lähtekoodiga tarkvara, on selle kasutusele võtnud tuhanded veebiserverite administraatorid kogu maailmas, mitte ainult Linuxi ja * nixi serverites, vaid ka Microsoft Windowsis.

Neile meist, kes on Apache'iga kõige rohkem harjunud, võib Nginxil olla mõnevõrra järsk õppimiskõver (vähemalt see oli minu puhul), kuid see tasub end kindlasti ära, kui olete paar saiti seadistanud ja liikluse ja ressursside kasutamise statistikat hakanud nägema.

Selles artiklis selgitame, kuidas Nginxit kasutada nimepõhise ja ip-põhise virtuaalse hostimise seadistamiseks CentOS/RHEL 7 serverites ning Debian 8 ja derivaatides, alustades Ubuntu 15.04-st ja selle spin-offidest.

  1. Operatsioonisüsteem: Debian 8 Jessie server [IP 192.168.0.25]
  2. Lüüs: ruuter [IP 192.168.0.1]
  3. Veebiserver: Nginx 1.6.2-5
  4. Nukk-domeenid: www.tecmintlovesnginx.com ja www.nginxmeanspower.com.

Nginxi veebiserveri installimine

Kui te pole seda veel teinud, installige enne jätkamist Nginx. Kui vajate alustamiseks abi, tagastab sellel saidil kiire nginxi otsimine mitu selleteemalist artiklit. Klõpsake selle lehe ülaosas olevat suurendusklaasi ikooni ja otsige märksõna nginx. Kui te ei tea, kuidas sellel saidil artikleid otsida, siis ärge muretsege, et siin oleme lisanud lingid nginxi artiklitele, lihtsalt minge läbi ja installige see vastavalt oma vastavatele Linuxi distributsioonidele.

  1. Installige ja kompileerige Nginx allikatest RHEL/CentOS 7-sse
  2. Installige Nginxi veebiserver Debian 8-sse
  3. Installige Nginx koos MariaDB ja PHP/PHP-FPM-iga Fedora 23-le
  4. Installige Nginxi veebiserver Ubuntu 15.10 serverisse/töölauale
  5. Parooliga kaitsta Nginxi veebisaitide katalooge

Seejärel valmistuge jätkama selle juhendajaga.

Nginxis nimepõhiste virtuaalsete hostide loomine

Nagu ma olen kindel, et juba teate, on virtuaalne host veebisait, mida Nginx teenindab ühes pilv VPS-is või füüsilises serveris. Kuid Nginxi dokumentidest leiate selle asemel termini \"server block \" , kuid need on põhimõtteliselt sama asi, mida nimetatakse erinevate nimedega.

Esimene samm virtuaalsete hostide seadistamisel on ühe või mitme serveriploki loomine (meie juhul loome kaks, üks igale mannekeenidomeenile) põhisesse konfiguratsioonifaili (/etc/nginx/nginx.conf) või sisemusse/jne./nginx/sites-available.

Ehkki selles kataloogis olevate konfiguratsioonifailide nimeks (saidid saadaval) saab määrata mis iganes soovite, on mõistlik kasutada domeenide nime ja lisaks otsustasime lisada .conf laiendus näitab, et tegemist on konfiguratsioonifailidega.

Need serveriplokid võivad olla suhteliselt keerukad, kuid põhivormis koosnevad järgmisest sisust:

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

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

Võite kasutada ülaltoodud plokke oma virtuaalsete hostide seadistamise alustamiseks või luua failid põhiskeletiga failidest/etc/nginx/sites-available/default (Debian) või /etc/nginx/nginx.conf.default ( CentOS).

Pärast kopeerimist muutke nende õigusi ja omandiõigusi.

# 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

Kui olete lõpetanud, peaksite segiajamise või konfliktide vältimiseks näidisfail kustutama või ümber nimetama.

Pange tähele, et peate looma ka logide kataloogi (/var/www/logs ) ja andma kasutajale Nginx (nginx või www-data, sõltuvalt sellest, kas kasutate CentOS või Debian ) selle üle lugemis- ja kirjutamisõigused:

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

Virtuaalhostid tuleb nüüd lubada, luues saidile lubatud kataloogis selle faili jaoks sümboli link:

# 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

Seejärel looge HTML-i näidisfail nimega index.html /var/www//public_html iga virtuaalse masina jaoks (asendage kui vaja). Vajadusel muutke järgmist koodi:

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

Lõpuks testige Nginxi konfiguratsiooni ja käivitage veebiserver. Kui konfiguratsioonis on vigu, palutakse teil need parandada:

# nginx -t && systemctl start nginx

ja lisage järgmised kirjed kohaliku masina faili /etc/hosts põhinime eraldusstrateegiana:

192.168.0.25 tecmintlovesnginx.com
192.168.0.25 nginxmeanspower.com

Seejärel käivitage veebibrauser ja minge ülaltoodud URL-idele:

Nginxis veel virtuaalsete hostide lisamiseks korrake ülaltoodud samme nii palju kordi kui vaja.

IP-põhised virtuaalsed hostid Nginxis

Erinevalt nimepõhistest virtuaalsetest hostidest, kus kõikidele hostidele on juurdepääs sama IP-aadressi kaudu, vajavad IP-põhised virtuaalsed hostid erinevat IP: port -kombinatsiooni.

See võimaldab veebiserveril tagastada erinevaid saite sõltuvalt IP-aadressist ja porti, kus päring vastu võetakse. Kuna nimepõhised virtuaalsed hostid annavad meile eeliseks IP-aadressi ja pordi jagamise, on need üldotstarbeliste veebiserverite standardid ja need peaksid olema valitud seadistused, välja arvatud juhul, kui teie installitud Nginxi versioon ei toeta serveri nime (SNI) kas sellepärast, et see on PÄRISELT aegunud versioon või seetõttu, et see kompileeriti ilma kompileerimisvalikuga –with-http_ssl_module.

Kui,

# nginx -V

ei tagasta allpool esile tõstetud valikuid:

peate oma Nginxi versiooni värskendama või uuesti kompileerima, sõltuvalt teie algsest installimeetodist. Nginxi koostamiseks järgige artiklit allpool:

  1. Installige ja kompileerige Nginx allikatest RHEL/CentOS 7-sse

Eeldades, et meil on hea minna, peame märkima, et IP-põhiste virtuaalsete hostide teine eeldus on eraldi IP-de olemasolu - kas määrates need erinevatele võrguliidestele või kasutades virtuaalseid IP-sid (tuntud ka kui IP aliasing ).

IP-aliasimise teostamiseks Debianis (eeldades, et kasutate eth0), muutke /etc/network/interfaces järgmiselt:

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

Ülalolevas näites loome kaks virtuaalset NIC-i rühmadest eth0: eth0: 1 (192.168.0.25) ja eth0: 2 (192.168.0.26).

Nimeta CentOS-is ümber/etc/sysconfig/network-scripts/ifcfg-enp0s3 nimeks ifcfg-enp0s3: 1 ja tee koopia nimega ifcfg-enp0s3: 2 ja siis lihtsalt muutke vastavalt järgmisi ridu:

DEVICE="enp0s3:1"
IPADDR=192.168.0.25

ja

DEVICE="enp0s3:2"
IPADDR=192.168.0.26

Kui see on tehtud, taaskäivitage võrguteenus:

# systemctl restart networking

Järgmisena tehke järgmised muudatused selles artiklis eelnevalt määratletud serveriplokkides:

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

listen 192.168.0.25:80

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

listen 192.168.0.26:80

Lõpuks taaskäivitage Nginx, et muudatused jõustuksid.

# systemctl restart nginx

ja ärge unustage vastavalt oma kohalikku /etc/hosts värskendada:

192.168.0.25 tecmintlovesnginx.com
192.168.0.26 nginxmeanspower.com

Seega tagastavad kõik sadamas 80 aadressidele 192.168.0.25 ja 192.168.0.26 tehtud taotlused vastavalt aadressid tecmintlovesnginx.com ja nginxmeanspower.com:

Nagu ülaltoodud piltidel näha, on teil nüüd kaks IP-põhist virtuaalset hostit, mis kasutavad teie serveris ainsat kahe erineva IP-aliasega NIC-i.

Kokkuvõte

Selles õpetuses oleme selgitanud, kuidas Nginxis seadistada nii nimepõhiseid kui ka IP-põhiseid virtuaalmasinaid. Ehkki soovite tõenäoliselt kasutada esimest võimalust, on oluline teada, et teine võimalus on endiselt olemas, kui seda vajate - veenduge, et langetaksite selle otsuse pärast selles juhendis esitatud faktide kaalumist.

Lisaks võite soovida Nginxi dokumendid järjehoidjatesse lisada, kuna serveriplokkide loomisel (seal on teil olemas - me räägime praegu Nginxi keeles) ja seadistades on väärt ja hea neile sageli viidata. Te ei usu kõiki võimalusi, mis on selle silmapaistva veebiserveri konfigureerimiseks ja häälestamiseks saadaval.

Nagu alati, ärge kartke meile allpool oleva vormi abil rida kirjutada, kui teil on selle artikli kohta küsimusi või kommentaare. Ootame teid huviga ja teie tagasiside selle juhendi kohta on väga teretulnud.