Jinsi ya Kusanidi Majeshi Virtual kulingana na Jina na IP-msingi (Vizuizi vya Seva) na NGINX


Katika kipindi kifupi tangu ilipoundwa na kupatikana (zaidi ya miaka 10), Nginx imepata ukuaji endelevu na thabiti kati ya seva za wavuti kwa sababu ya utendakazi wake wa juu na utumiaji wa kumbukumbu ya chini.

Kwa kuwa Nginx ni Programu ya Chanzo Huria na Huria, imekubaliwa na maelfu ya wasimamizi wa seva za wavuti kote ulimwenguni, sio tu katika Linux na seva za *nix, lakini pia katika Microsoft Windows.

Kwa wale ambao tulizoea Apache, Nginx inaweza kuwa na njia ya kujifunza yenye mwinuko (angalau hiyo ilikuwa kesi yangu) lakini hakika inalipa mara tu unapoanzisha tovuti kadhaa na kuanza kuona trafiki na takwimu za utumiaji wa rasilimali.

Katika makala haya tutaelezea jinsi ya kutumia Nginx kusanidi upangishaji pepe unaotegemea jina na utumiaji wa ip katika seva za CentOS/RHEL 7 na Debian 8 na viingilio, tukianza na Ubuntu 15.04 na mabadiliko yake.

  1. Mfumo wa Uendeshaji: Seva ya Debian 8 Jessie [IP 192.168.0.25]
  2. Lango: Njia [IP 192.168.0.1]
  3. Seva ya Wavuti: Nginx 1.6.2-5
  4. Vikoa vya Dummy: www.tecmintlovesnginx.com na www.nginxmeanspower.com.

Inasakinisha Seva ya Wavuti ya Nginx

Ikiwa bado hujafanya hivyo, tafadhali sakinisha Nginx kabla ya kuendelea zaidi. Ikiwa unahitaji usaidizi ili kuanza, utafutaji wa haraka wa nginx kwenye tovuti hii utarudi makala kadhaa juu ya mada hii. Bofya kwenye ikoni ya glasi ya ukuzaji iliyo juu ya ukurasa huu na utafute neno muhimu nginx. Ikiwa hujui jinsi ya kutafuta makala kwenye tovuti hii, usijali hapa tumeongeza viungo kwa makala ya nginx, pitia tu na usakinishe kulingana na usambazaji wako wa Linux.

  1. Sakinisha na Ukusanye Nginx kutoka kwa Vyanzo katika RHEL/CentOS 7
  2. Sakinisha Seva ya Wavuti ya Nginx kwenye Debian 8
  3. Sakinisha Nginx ukitumia MariaDB na PHP/PHP-FPM kwenye Fedora 23
  4. Sakinisha Seva ya Wavuti ya Nginx kwenye Seva/Desktop ya Ubuntu 15.10
  5. Nenosiri Linda Saraka za Tovuti za Nginx

Kisha jitayarishe kuendelea na mafunzo haya mengine.

Kuunda Vipangishi Vinavyotegemea Jina kwenye Nginx

Kama nina hakika kuwa tayari unajua, mwenyeji wa kawaida ni tovuti ambayo hutumiwa na Nginx katika VPS ya wingu moja au seva ya kimwili. Walakini, katika hati za Nginx utapata neno \vizuizi vya seva\ badala yake, lakini kimsingi ni kitu sawa kinachoitwa kwa majina tofauti.

Hatua ya kwanza ya kusanidi majeshi ya kawaida ni kuunda vizuizi vya seva moja au zaidi (kwa upande wetu tutaunda mbili, moja kwa kila kikoa cha dummy) kwenye faili kuu ya usanidi (/etc/nginx/nginx.conf) au ndani /etc. /nginx/tovuti zinazopatikana.

Ingawa jina la faili za usanidi katika saraka hii (tovuti zinazopatikana) zinaweza kuwekwa kwa chochote unachotaka, ni wazo nzuri kutumia jina la vikoa, na kwa kuongeza tulichagua kuongeza .conf kiendelezi kuashiria kuwa hizi ni faili za usanidi.

Vizuizi hivi vya seva vinaweza kuwa ngumu, lakini katika muundo wao wa kimsingi vinajumuisha yaliyomo:

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

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

Unaweza kutumia vizuizi vilivyo hapo juu kuanza kusanidi wapangishi wako pepe, au unaweza kuunda faili ukitumia kiunzi msingi kutoka kwa /etc/nginx/sites-available/default (Debian) au /etc/nginx/nginx.conf.default ( CentOS).

Baada ya kunakiliwa, badilisha ruhusa na umiliki wao:

# 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

Ukimaliza, unapaswa kufuta sampuli ya faili au uipe jina jipya ili kuepusha mkanganyiko au migongano.

Tafadhali kumbuka kuwa utahitaji pia kuunda saraka ya kumbukumbu (/var/www/logs) na kumpa mtumiaji wa Nginx (nginx au www-data, kulingana na ikiwa unaendesha CentOS au Debian. ) soma na uandike ruhusa juu yake:

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

Wapangishi pepe lazima sasa wawezeshwe kwa kuunda ulinganifu kwa faili hii katika saraka inayowezeshwa na tovuti:

# 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

Ifuatayo, unda sampuli ya faili ya html inayoitwa index.html ndani ya /var/www//public_html kwa kila seva pangishi pepe (badilisha kama inahitajika). Rekebisha nambari ifuatayo inapohitajika:

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

Hatimaye, jaribu usanidi wa Nginx na uanze seva ya wavuti. Ikiwa kuna makosa yoyote katika usanidi, utaulizwa kuyasahihisha:

# nginx -t && systemctl start nginx

na uongeze maingizo yafuatayo kwenye faili yako ya /etc/hosts katika mashine yako ya karibu kama mkakati wa msingi wa utatuzi wa jina:

192.168.0.25 tecmintlovesnginx.com
192.168.0.25 nginxmeanspower.com

Kisha uzindua kivinjari na uende kwa URL zilizoorodheshwa hapo juu:

Ili kuongeza wapangishaji zaidi pepe kwenye Nginx, rudia tu hatua zilizoainishwa hapo juu mara nyingi inavyohitajika.

Wapangishi wa Mtandaoni wa msingi wa IP huko Nginx

Kinyume na seva pangishi pepe zinazotegemea majina ambapo seva pangishi zote zinaweza kufikiwa kupitia anwani sawa ya IP, seva pangishi pepe zinazotegemea IP zinahitaji mchanganyiko tofauti wa IP:port kila moja.

Hii inaruhusu seva ya wavuti kurudisha tovuti tofauti kulingana na anwani ya IP na mlango ambapo ombi linapokelewa. Kwa kuwa seva pangishi pepe zilizo na majina hutupatia faida ya kushiriki anwani ya IP na mlango, ndizo kanuni za kawaida za seva za wavuti za madhumuni ya jumla na zinapaswa kuwa chaguo la kuchagua isipokuwa toleo lako lililosakinishwa la Nginx halitumii Kiashiria cha Jina la Seva (SNI) , ama kwa sababu ni toleo lililopitwa na wakati KWELI, au kwa sababu liliundwa bila -with-http_ssl_module chaguo la kukusanya.

Kama,

# nginx -V

hairudishi chaguzi zilizoangaziwa hapa chini:

utahitaji kusasisha toleo lako la Nginx au ulirudishe, kulingana na njia yako ya usakinishaji asili. Kwa kuandaa Nginx, fuata nakala hapa chini:

  1. Sakinisha na Ukusanye Nginx kutoka kwa Vyanzo katika RHEL/CentOS 7

Kwa kudhani kuwa tuko tayari kwenda, tunahitaji kutambua kwamba sharti lingine la wapangishi pepe wanaotegemea IP ni kupatikana kwa IP tofauti - ama kwa kuzipanga kwa miingiliano tofauti ya mtandao, au kupitia matumizi ya IPs pepe (pia inajulikana kama IP aliasing. )

Ili kutekeleza lakabu ya IP katika Debian (ikizingatiwa kuwa unatumia eth0), hariri /etc/network/interfaces kama ifuatavyo:

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

Katika mfano ulio hapo juu tunaunda NIC mbili pepe kati ya eth0: eth0:1 (192.168.0.25) na eth0:2 (192.168.0.26).

Katika CentOS, badilisha jina /etc/sysconfig/network-scripts/ifcfg-enp0s3 kama ifcfg-enp0s3:1 na ufanye nakala kama ifcfg-enp0s3:2, na kisha tu badilisha mistari ifuatayo, mtawaliwa:

DEVICE="enp0s3:1"
IPADDR=192.168.0.25

na

DEVICE="enp0s3:2"
IPADDR=192.168.0.26

Mara baada ya kumaliza, anzisha upya huduma ya mtandao:

# systemctl restart networking

Ifuatayo, fanya mabadiliko yafuatayo kwa vizuizi vya seva vilivyofafanuliwa hapo awali katika nakala hii:

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

listen 192.168.0.25:80

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

listen 192.168.0.26:80

Mwishowe, anzisha tena Nginx ili mabadiliko yaanze kutumika.

# systemctl restart nginx

na usisahau kusasisha /etc/hosts za eneo lako ipasavyo:

192.168.0.25 tecmintlovesnginx.com
192.168.0.26 nginxmeanspower.com

Kwa hivyo, kila ombi lililotumwa kwa 192.168.0.25 na 192.168.0.26 kwenye bandari 80 litarejesha tecmintlovesnginx.com na nginxmeanspower.com, mtawalia:

Kama unavyoona kwenye picha zilizo hapo juu, sasa una wapangishi wawili pepe unaotegemea IP wanaotumia NIC pekee kwenye seva yako iliyo na lakabu mbili tofauti za IP.

Muhtasari

Katika somo hili tumeelezea jinsi ya kusanidi wapangishi pepe wa msingi wa majina na IP katika Nginx. Ingawa pengine utataka kutumia chaguo la kwanza, ni muhimu kujua kwamba chaguo jingine bado lipo ikiwa unalihitaji - hakikisha tu kwamba umechukua uamuzi huu baada ya kuzingatia ukweli ulioainishwa katika mwongozo huu.

Zaidi ya hayo, unaweza kutaka kualamisha hati za Nginx kama inavyostahili na vizuri kuzirejelea mara nyingi wakati wa kuunda vizuizi vya seva (hapo unayo - tunazungumza katika lugha ya Nginx sasa) na kusanidi. Hutaamini chaguo zote zinazopatikana ili kusanidi na kutengeneza seva hii bora ya wavuti.

Kama kawaida, usisite kutuandikia mstari ukitumia fomu iliyo hapa chini ikiwa una maswali au maoni yoyote kuhusu nakala hii. Tunatazamia kusikia kutoka kwako, na maoni yako kuhusu mwongozo huu yanakaribishwa sana.