Hvernig á að setja upp nafn- og IP-byggða sýndargestgjafa (þjónablokkir) með NGINX


Á tiltölulega stuttum tíma síðan það var þróað og gert aðgengilegt (lítið yfir 10 ár) hefur Nginx upplifað viðvarandi og stöðugan vöxt meðal netþjóna vegna mikillar afkösts og lítillar minnisnotkunar.

Þar sem Nginx er ókeypis og opinn hugbúnaður hefur hann verið tekinn upp af þúsundum netþjónastjórnenda um allan heim, ekki aðeins í Linux og *nix netþjónum, heldur einnig í Microsoft Windows.

Fyrir okkur sem eru oftast vön Apache, gæti Nginx verið með nokkuð bratta námsferil (að minnsta kosti var það mitt mál) en það borgar sig vissulega þegar þú setur upp nokkrar síður og byrjar að sjá tölfræði umferðar og auðlindanotkunar.

Í þessari grein munum við útskýra hvernig á að nota Nginx til að setja upp nafntengda og ip-byggða sýndarhýsingu á CentOS/RHEL 7 netþjónum og Debian 8 og afleiðum, frá og með Ubuntu 15.04 og aukahlutum þess.

  1. Stýrikerfi: Debian 8 Jessie þjónn [IP 192.168.0.25]
  2. Gátt: Bein [IP 192.168.0.1]
  3. Vefþjónn: Nginx 1.6.2-5
  4. Dummy lén: www.tecmintlovesnginx.com og www.nginxmeanspower.com.

Að setja upp Nginx vefþjón

Ef þú hefur ekki gert það nú þegar, vinsamlegast settu upp Nginx áður en þú heldur áfram. Ef þú þarft hjálp til að byrja mun fljótleg leit að nginx á þessari síðu skila nokkrum greinum um þetta efni. Smelltu á stækkunarglerstáknið efst á þessari síðu og leitaðu að leitarorði nginx. Ef þú veist ekki hvernig á að leita að greinum á þessari síðu, ekki hafa áhyggjur hér, við höfum bætt við tenglum á nginx greinarnar, farðu bara í gegnum og settu það upp eins og á viðkomandi Linux dreifingu.

  1. Settu upp og settu saman Nginx frá heimildum í RHEL/CentOS 7
  2. Settu upp Nginx vefþjón á Debian 8
  3. Settu upp Nginx með MariaDB og PHP/PHP-FPM á Fedora 23
  4. Settu upp Nginx vefþjón á Ubuntu 15.10 netþjóni/skjáborði
  5. Lykilorðsvernd Nginx vefsíðuskrár

Vertu svo tilbúinn til að halda áfram með restina af þessari kennslu.

Að búa til nafnabyggða sýndargestgjafa í Nginx

Eins og ég er viss um að þú veist nú þegar, þá er sýndargestgjafi vefsíða sem er þjónað af Nginx í einu skýi VPS eða líkamlegum netþjóni. Hins vegar, í Nginx skjölunum finnurðu hugtakið \server blokkir\ í staðinn, en þeir eru í grundvallaratriðum það sama og kallaðir mismunandi nöfnum.

Fyrsta skrefið til að setja upp sýndargestgjafa er að búa til eina eða fleiri netþjónablokkir (í okkar tilfelli munum við búa til tvær, eina fyrir hvert dummy lén) í aðalstillingarskránni (/etc/nginx/nginx.conf) eða inni í /etc /nginx/sites-available.

Þó að hægt sé að stilla heiti stillingarskráa í þessari möppu (síður-tiltækar) á það sem þú vilt, þá er gott að nota heiti lénanna og auk þess völdum við að bæta við .conf viðbót til að gefa til kynna að þetta séu stillingarskrár.

Þessar netþjónablokkir geta verið tiltölulega flóknar, en í grunnformi þeirra samanstanda þeir af eftirfarandi efni:

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

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

Þú getur notað ofangreindar blokkir til að byrja að setja upp sýndargestgjafana þína, eða þú getur búið til skrárnar með grunnbeinagrindinni frá /etc/nginx/sites-available/default (Debian) eða /etc/nginx/nginx.conf.default ( CentOS).

Þegar búið er að afrita skaltu breyta heimildum þeirra og eignarhaldi:

# 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

Þegar þú ert búinn ættirðu að eyða sýnisskránni eða endurnefna hana í eitthvað annað til að forðast rugling eða árekstra.

Vinsamlegast athugaðu að þú þarft einnig að búa til möppuna fyrir logs (/var/www/logs) og gefa Nginx notandanum (nginx eða www-data, eftir því hvort þú ert að keyra CentOS eða Debian ) lesa og skrifa heimildir yfir það:

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

Sýndargestgjafar verða nú að vera virkjaðir með því að búa til tákntengil á þessa skrá í möppunni sem er virkt fyrir vefsvæði:

# 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

Næst skaltu búa til sýnishorn af HTML-skrá sem heitir index.html inni í /var/www//public_html fyrir hvern sýndarhýsingaraðila (skipta um sem þörf). Breyttu eftirfarandi kóða eftir þörfum:

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

Að lokum, prófaðu Nginx stillinguna og ræstu vefþjóninn. Ef einhverjar villur eru í uppsetningunni verðurðu beðinn um að leiðrétta þær:

# nginx -t && systemctl start nginx

og bættu eftirfarandi færslum við /etc/hosts skrána þína á staðbundnu vélinni þinni sem grunnstefnu fyrir upplausn nafna:

192.168.0.25 tecmintlovesnginx.com
192.168.0.25 nginxmeanspower.com

Ræstu síðan vafra og farðu á vefslóðirnar sem taldar eru upp hér að ofan:

Til að bæta við fleiri sýndarhýsingum í Nginx skaltu bara endurtaka skrefin sem lýst er hér að ofan eins oft og þörf krefur.

IP-undirstaða sýndargestgjafar í Nginx

Öfugt við sýndarhýsingar sem byggjast á nafni þar sem allir gestgjafar eru aðgengilegir í gegnum sama IP-tölu, þá krefjast sýndarhýsingar sem byggjast á IP mismunandi IP:port samsetningu hver.

Þetta gerir vefþjóninum kleift að skila mismunandi síðum eftir IP tölu og gátt þar sem beiðnin er móttekin á. Þar sem nafngreindir sýndargestgjafar gefa okkur þann kost að deila IP tölu og gátt, eru þeir staðall fyrir almenna netþjóna og ættu að vera valin uppsetning nema uppsett útgáfa þín af Nginx styðji ekki Server Name Indication (SNI) , annað hvort vegna þess að það er MJÖG úrelt útgáfa, eða vegna þess að það var sett saman án samsetningarvalkostsins –with-http_ssl_module.

Ef,

# nginx -V

skilar ekki auðkenndu valkostunum hér að neðan:

þú þarft að uppfæra útgáfuna þína af Nginx eða setja hana saman aftur, allt eftir upprunalegu uppsetningaraðferðinni þinni. Til að setja saman Nginx, fylgdu greininni hér að neðan:

  1. Settu upp og settu saman Nginx frá heimildum í RHEL/CentOS 7

Að því gefnu að við séum komin í gott horf, verðum við að hafa í huga að önnur forsenda fyrir IP-undirstaða sýndarhýsingar er að aðskildir IP-tölur séu tiltækir – annað hvort með því að úthluta þeim á sérstök netviðmót eða með því að nota sýndar-IP-tölur (einnig þekkt sem IP-samnöfnun ).

Til að framkvæma IP aliasing í Debian (að því gefnu að þú sért að nota eth0), breyttu /etc/network/interfaces á eftirfarandi hátt:

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

Í dæminu hér að ofan búum við til tvö sýndar-NIC úr eth0: eth0:1 (192.168.0.25) og eth0:2 (192.168.0.26).

Í CentOS, endurnefna /etc/sysconfig/network-scripts/ifcfg-enp0s3 sem ifcfg-enp0s3:1 og búa til afrit sem ifcfg-enp0s3:2 og svo bara breyta eftirfarandi línum, í sömu röð:

DEVICE="enp0s3:1"
IPADDR=192.168.0.25

og

DEVICE="enp0s3:2"
IPADDR=192.168.0.26

Þegar þessu er lokið skaltu endurræsa sérþjónustuna:

# systemctl restart networking

Næst skaltu gera eftirfarandi breytingar á netþjónablokkunum sem áður voru skilgreindar í þessari grein:

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

listen 192.168.0.25:80

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

listen 192.168.0.26:80

Að lokum skaltu endurræsa Nginx til að breytingarnar taki gildi.

# systemctl restart nginx

og ekki gleyma að uppfæra staðbundna /etc/hosts þína í samræmi við það:

192.168.0.25 tecmintlovesnginx.com
192.168.0.26 nginxmeanspower.com

Þannig mun hver beiðni sem gerð er til 192.168.0.25 og 192.168.0.26 á höfn 80 skila tecmintlovesnginx.com og nginxmeanspower.com, í sömu röð:

Eins og þú sérð á myndunum hér að ofan, ertu núna með tvo IP-undirstaða sýndargestgjafa sem nota eina NIC á netþjóninum þínum með tveimur mismunandi IP samnöfnum.

Samantekt

Í þessari kennslu höfum við útskýrt hvernig á að setja upp bæði nafntengda og IP-byggða sýndargestgjafa í Nginx. Þó að þú viljir líklega nota fyrsta valkostinn, þá er mikilvægt að vita að hinn valkosturinn er enn til staðar ef þú þarft á honum að halda - vertu bara viss um að taka þessa ákvörðun eftir að hafa skoðað staðreyndirnar sem lýst er í þessari handbók.

Að auki gætirðu viljað setja bókamerki á Nginx skjölin þar sem það er verðugt og vel að vísa til þeirra oft á meðan þú býrð til netþjónablokkir (þar hefurðu það - við erum að tala á Nginx tungumálinu núna) og stillir þær. Þú munt ekki trúa öllum þeim valkostum sem eru í boði til að stilla og stilla þennan framúrskarandi vefþjón.

Eins og alltaf, ekki hika við að senda okkur línu með því að nota formið hér að neðan ef þú hefur einhverjar spurningar eða athugasemdir um þessa grein. Við hlökkum til að heyra frá þér og athugasemdir þínar um þessa handbók eru vel þegnar.