Yadda ake Saita tushen Suna da Mai watsa shiri na tushen IP (Tsabar Sabar) tare da NGINX


A cikin ɗan gajeren lokaci tun lokacin da aka haɓaka da kuma samar da shi (kadan fiye da shekaru 10), Nginx ya sami ci gaba mai dorewa da ci gaba a tsakanin sabar yanar gizo saboda babban aiki da ƙananan amfani da ƙwaƙwalwar ajiya.

Tun da Nginx kyauta ne kuma Software na Buɗewa, dubban masu gudanar da sabar yanar gizo sun karbe shi a duk faɗin duniya, ba kawai a cikin Linux da * sabar nix ba, har ma a cikin Microsoft Windows.

Ga waɗanda daga cikinmu da aka fi amfani da su zuwa Apache, Nginx na iya samun ɗan ɗanɗanar yanayin koyo (aƙalla wannan shine lamarina) amma tabbas yana biya da zarar kun kafa rukunin shafuka guda biyu kuma ku fara ganin zirga-zirga da kididdigar amfani da albarkatu.

A cikin wannan labarin za mu bayyana yadda ake amfani da Nginx don saita tushen suna da ip-based hosting hosting a cikin CentOS/RHEL 7 sabobin da Debian 8 da abubuwan da suka samo asali, farawa daga Ubuntu 15.04 da kuma kashe-kashe.

  1. Tsarin aiki: uwar garken Debian 8 Jessie [IP 192.168.0.25]
  2. Ƙofar: Mai ba da hanya tsakanin hanyoyin sadarwa [IP 192.168.0.1]
  3. Sabar Yanar Gizo: Nginx 1.6.2-5
  4. Dummy Domains: www.tecmintlovesnginx.com da www.nginxmeanspower.com.

Ana shigar Nginx Web Server

Idan baku yi haka ba tukuna, da fatan za a shigar da Nginx kafin a ci gaba. Idan kuna buƙatar taimako don farawa, saurin neman nginx a cikin wannan rukunin yanar gizon zai dawo da labarai da yawa akan wannan batu. Danna gunkin gilashin ƙararrawa a saman wannan shafin kuma bincika kalmar nginx. Idan baku san yadda ake bincika labarai a cikin wannan rukunin yanar gizon ba, kada ku damu anan mun ƙara hanyoyin haɗi zuwa labaran nginx, kawai ku shiga ku shigar da shi gwargwadon rabon ku na Linux.

  1. Shigar kuma Haɗa Nginx daga Tushen a cikin RHEL/CentOS 7
  2. Shigar da Sabar Yanar Gizo ta Nginx akan Debian 8
  3. Saka Nginx tare da MariaDB da PHP/PHP-FPM akan Fedora 23
  4. Saka Sabar Yanar Gizo ta Nginx akan Ubuntu 15.10 Server/Desktop
  5. Password Kare Darajojin Yanar Gizon Nginx

Sannan ku shirya don ci gaba da sauran wannan koyawa.

Ƙirƙirar Runduna Mai Kyau na tushen Suna a cikin Nginx

Kamar yadda na tabbata kun riga kuka sani, mai masaukin baki shine gidan yanar gizon da Nginx ke aiki a cikin girgije ɗaya VPS ko uwar garken jiki. Koyaya, a cikin takaddun Nginx zaku sami kalmar \ tubalan uwar garken\ maimakon, amma ainihin abu ɗaya ne da ake kira da sunaye daban-daban.

Mataki na farko don saita runduna masu kama-da-wane shine ƙirƙirar tubalan uwar garken ɗaya ko fiye (a cikin yanayinmu za mu ƙirƙiri guda biyu, ɗaya ga kowane yanki na dummy) a cikin babban fayil ɗin sanyi (/etc/nginx/nginx.conf) ko ciki/sauransu. /nginx/sites-akwai.

Ko da yake ana iya saita sunan fayilolin daidaitawa a cikin wannan jagorar (shafukan-samuwa) zuwa duk abin da kuke so, yana da kyau a yi amfani da sunan wuraren, kuma ban da haka mun zaɓi ƙara .conf tsawo don nuna cewa waɗannan fayilolin sanyi ne.

Waɗannan tubalan uwar garken na iya zama masu rikitarwa, amma a cikin ainihin sigar su sun ƙunshi abun ciki mai zuwa:

A cikin /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;  
}

A cikin /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;  
}

Kuna iya amfani da tubalan da ke sama don fara kafa rundunonin rundunonin ku, ko kuna iya ƙirƙirar fayilolin tare da ainihin kwarangwal daga /etc/nginx/sites-available/default (Debian) ko /etc/nginx/nginx.conf.default ( CentOS).

Da zarar an kwafi, canza izini da ikon mallakar su:

# 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

Idan kun gama, ya kamata ku share fayil ɗin samfurin ko sake suna shi zuwa wani abu dabam don guje wa rudani ko rikici.

Da fatan za a lura cewa kuna buƙatar ƙirƙirar kundin adireshi don rajistan ayyukan (/var/www/logs) kuma ku ba mai amfani Nginx (nginx ko www-data, dangane da ko kuna gudana CentOS ko Debian). ) karanta da rubuta izini akansa:

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

Dole ne a kunna runduna kama-da-wane ta hanyar ƙirƙirar alamar haɗin kai zuwa wannan fayil a cikin kundin adireshi masu kunna shafuka:

# 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

Na gaba, ƙirƙiri samfurin html fayil mai suna index.html a cikin /var/www/< domain name>/public_html ga kowane runduna kama-da-wane (maye gurbin < domain name> kamar yadda ake bukata). Gyara lambar kamar yadda ya cancanta:

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

A ƙarshe, gwada daidaitawar Nginx kuma fara sabar yanar gizo. Idan akwai wasu kurakurai a cikin tsarin, za a sa ka gyara su:

# nginx -t && systemctl start nginx

kuma ƙara waɗannan shigarwar zuwa fayil ɗin /etc/hosts a cikin injin ɗin ku azaman ainihin dabarun ƙudurin suna:

192.168.0.25 tecmintlovesnginx.com
192.168.0.25 nginxmeanspower.com

Sannan kaddamar da mai binciken gidan yanar gizo kuma je zuwa URLs da aka jera a sama:

Don ƙara ƙarin runduna kama-da-wane a cikin Nginx, kawai maimaita matakan da aka zayyana a sama sau da yawa kamar yadda ake buƙata.

Mai watsa shiri na tushen IP a cikin Nginx

Sabanin runduna masu kama-da-wane na suna inda za a iya samun duk runduna ta hanyar adireshin IP iri ɗaya, runduna masu kama da IP suna buƙatar haɗin IP: tashar jiragen ruwa daban-daban.

Wannan yana ba uwar garken gidan yanar gizon damar dawo da shafuka daban-daban dangane da adireshin IP da tashar jiragen ruwa inda aka karɓi buƙatar. Tunda masu ba da izini na tushen mai suna suna ba mu fa'idar raba adireshin IP da tashar jiragen ruwa, sune ma'auni don sabar gidan yanar gizo gabaɗaya kuma yakamata su zama saitin zaɓi sai dai in shigar da sigar Nginx ɗinku baya tallafawa Alamar Sunan Server (SNI) , ko dai saboda sigar da ta gabata ce, ko kuma saboda an haɗa ta ba tare da zaɓin haɗa-with-http_ssl_module ba.

Idan,

# nginx -V

baya mayar da fitattun zaɓuɓɓukan da ke ƙasa:

kuna buƙatar sabunta sigar Nginx ɗinku ko sake tattara ta, ya danganta da hanyar shigarwa ta asali. Don haɗa Nginx, bi labarin da ke ƙasa:

  1. Shigar kuma Haɗa Nginx daga Tushen a cikin RHEL/CentOS 7

Da ɗaukan muna da kyau mu tafi, muna buƙatar lura cewa wani abin da ake buƙata don masu ba da izini na tushen IP shine samuwar IPs daban - ko dai ta hanyar sanya su zuwa hanyoyin mu'amalar hanyar sadarwa daban-daban, ko ta hanyar amfani da IP na kama-da-wane (wanda kuma aka sani da aliasing IP). ).

Don aiwatar da ƙayyadaddun IP a cikin Debian (yana zaton kuna amfani da eth0), shirya /etc/network/interfaces kamar haka:

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 cikin misalin da ke sama mun ƙirƙiri NICs guda biyu daga cikin eth0: eth0: 1 (192.168.0.25) da eth0:2 (192.168.0.26).

A cikin CentOS, sake suna /etc/sysconfig/network-scripts/ifcfg-enp0s3 a matsayin ifcfg-enp0s3:1 kuma yi kwafi azaman ifcfg-enp0s3:2, sannan kawai canza layukan masu zuwa, bi da bi:

DEVICE="enp0s3:1"
IPADDR=192.168.0.25

kuma

DEVICE="enp0s3:2"
IPADDR=192.168.0.26

Da zarar an gama, sake kunna sabis na cibiyar sadarwa:

# systemctl restart networking

Bayan haka, yi canje-canje masu zuwa ga tubalan uwar garken da aka bayyana a baya a cikin wannan labarin:

A cikin /etc/nginx/sites-available/tecmintlovesnginx.com.conf:

listen 192.168.0.25:80

A cikin /etc/nginx/sites-available/nginxmeanspower.com.conf:

listen 192.168.0.26:80

A ƙarshe, sake kunna Nginx don canje-canje suyi tasiri.

# systemctl restart nginx

kuma kar a manta da sabunta /etc/hosts na gida kamar haka:

192.168.0.25 tecmintlovesnginx.com
192.168.0.26 nginxmeanspower.com

Don haka, kowace buƙatar da aka yi wa 192.168.0.25 da 192.168.0.26 akan tashar jiragen ruwa 80 za ta dawo tecmintlovesnginx.com da nginxmeanspower.com, bi da bi:

Kamar yadda kuke gani a cikin hotunan da ke sama, yanzu kuna da runduna ta hanyar IP guda biyu ta amfani da NIC kawai a cikin sabar ku tare da laƙabi na IP daban-daban guda biyu.

Takaitawa

A cikin wannan koyawa mun yi bayanin yadda ake saita duka masu amfani da sunan suna da IP a cikin Nginx. Ko da yake tabbas za ku so kuyi amfani da zaɓi na farko, yana da mahimmanci ku san cewa ɗayan zaɓin yana nan idan kuna buƙatar shi - kawai ku tabbata kun ɗauki wannan shawarar bayan la'akari da gaskiyar da aka zayyana a cikin wannan jagorar.

Bugu da ƙari, ƙila za ku so yin alamar takaddun Nginx kamar yadda ya cancanta kuma da kyau a koma zuwa gare su sau da yawa yayin ƙirƙirar tubalan uwar garken (a nan kuna da shi - muna magana a cikin harshen Nginx yanzu) da kuma daidaita su. Ba za ku yarda da duk zaɓuɓɓukan da ke akwai don daidaitawa da daidaita wannan fitaccen sabar gidan yanar gizo ba.

Kamar koyaushe, kada ku yi jinkirin sauke mana layi ta amfani da fom ɗin da ke ƙasa idan kuna da wasu tambayoyi ko sharhi game da wannan labarin. Muna sa ran ji daga gare ku, kuma ra'ayoyinku game da wannan jagorar abin maraba ne.