Giunsa ang Pag-setup sa Name-based ug IP-based Virtual Hosts (Server Blocks) uban sa NGINX


Sa medyo mubo nga yugto sa panahon sukad kini naugmad ug gihimo nga magamit (sobra sa 10 ka tuig), ang Nginx nakasinati sa usa ka makanunayon ug makanunayon nga pagtubo sa mga web server tungod sa taas nga pasundayag ug ubos nga paggamit sa memorya.

Tungod kay Libre ug Open Source Software ang Nginx, gisagop kini sa libu-libo nga mga administrador sa web server sa tibuuk kalibutan, dili lamang sa mga server sa Linux ug *nix, apan sa Microsoft Windows usab.

Alang sa kadaghanan sa amon nga gigamit sa Apache, ang Nginx mahimo’g adunay usa ka medyo taas nga kurba sa pagkat-on (labing menos kana ang akong kaso) apan siguradong mabayran kini kung mag-set up ka usa ka pares nga mga site ug magsugod sa pagtan-aw sa mga istatistika sa paggamit sa trapiko ug kapanguhaan.

Sa kini nga artikulo among ipasabut kung giunsa ang paggamit sa Nginx aron mag-set up nga nakabase sa ngalan ug nakabase sa ip nga virtual hosting sa mga server sa CentOS/RHEL 7 ug Debian 8 ug mga derivatives, sugod sa Ubuntu 15.04 ug ang mga spin-off niini.

  1. Sistema sa Operating: Debian 8 Jessie server [IP 192.168.0.25]
  2. Ganghaan: Router [IP 192.168.0.1]
  3. Web Server: Nginx 1.6.2-5
  4. Dummy Domains: www.tecmintlovesnginx.com ug www.nginxmeanspower.com.

Pag-instalar sa Nginx Web Server

Kung wala pa nimo kini mahimo, palihug i-install ang Nginx sa dili pa magpadayon. Kung kinahanglan nimo ang tabang aron makasugod, ang dali nga pagpangita sa nginx sa kini nga site magbalik daghang mga artikulo bahin sa kini nga hilisgutan. Pag-klik sa icon nga magnifying glass sa taas sa kini nga panid ug pangitaa ang keyword nga nginx. Kung wala ka mahibal-an kung giunsa pagpangita ang mga artikulo sa kini nga site, ayaw kabalaka dinhi nagdugang kami mga link sa mga artikulo sa nginx, adto lang ug i-install kini sumala sa imong mga distribusyon sa Linux.

  1. I-install ug I-compile ang Nginx gikan sa Mga Tinubdan sa RHEL/CentOS 7
  2. I-install ang Nginx Web Server sa Debian 8
  3. I-install ang Nginx sa MariaDB ug PHP/PHP-FPM sa Fedora 23
  4. I-install ang Nginx Web Server sa Ubuntu 15.10 Server/Desktop
  5. Password Protect Nginx Website Directories

Dayon pag-andam sa pagpadayon sa uban niini nga panudlo.

Paghimo sa Name-based Virtual Hosts sa Nginx

Ingon ako sigurado nga nahibal-an na nimo, ang usa ka virtual host usa ka website nga giserbisyuhan sa Nginx sa usa ka cloud VPS o pisikal nga server. Bisan pa, sa Nginx docs makit-an nimo ang termino nga \server blocks\ sa baylo, apan sila sa panguna parehas nga butang nga gitawag sa lainlaing mga ngalan.

Ang unang lakang sa pag-set up sa mga virtual host mao ang paghimo og usa o daghan pa nga mga block sa server (sa among kaso maghimo kami og duha, usa alang sa matag dummy domain) sa main configuration file (/etc/nginx/nginx.conf) o sa sulod /etc /nginx/sites-available.

Bisan tuod ang ngalan sa mga configuration file niini nga direktoryo (sites-available) mahimong itakda sa bisan unsa nga imong gusto, maayo nga ideya nga gamiton ang ngalan sa mga dominyo, ug dugang pa nga among gipili nga idugang ang .conf extension aron ipakita nga kini mga file sa pag-configure.

Kini nga mga bloke sa server mahimong medyo komplikado, apan sa ilang sukaranan nga porma naglangkob kini sa mosunod nga sulud:

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

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

Mahimo nimong gamiton ang mga bloke sa ibabaw aron magsugod sa pag-set up sa imong mga virtual host, o mahimo nimong buhaton ang mga file nga adunay sukaranan nga kalabera gikan sa /etc/nginx/sites-available/default (Debian) o /etc/nginx/nginx.conf.default ( CentOS).

Kung makopya na, usba ang ilang mga pagtugot ug pagpanag-iya:

# 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

Kung nahuman na ka, kinahanglan nimo nga tangtangon ang sample file o ilisan kini sa lain nga ngalan aron malikayan ang kalibog o panagbangi.

Palihug timan-i nga kinahanglan ka usab nga maghimo sa direktoryo alang sa mga troso (/var/www/logs) ug ihatag ang Nginx user (nginx o www-data, depende kung nagdagan ka sa CentOS o Debian ) basaha ug isulat ang mga permiso sa ibabaw niini:

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

Ang mga virtual nga host kinahanglan na nga magamit pinaagi sa paghimo og usa ka symlink sa kini nga file sa direktoryo nga gipagana sa mga site:

# 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

Sunod, paghimo ug sample html file nga ginganlag index.html sulod sa /var/www//public_html para sa matag usa sa mga virtual host (ilisan ang isip gikinahanglan). Usba ang mosunod nga code kung gikinahanglan:

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

Sa katapusan, sulayi ang configuration sa Nginx ug sugdi ang web server. Kung adunay mga sayup sa pag-configure, aghaton ka sa pagtul-id niini:

# nginx -t && systemctl start nginx

ug idugang ang mosunod nga mga entry sa imong /etc/hosts file sa imong lokal nga makina isip usa ka batakang estratehiya sa resolusyon sa ngalan:

192.168.0.25 tecmintlovesnginx.com
192.168.0.25 nginxmeanspower.com

Dayon maglunsad og web browser ug adto sa mga URL nga gilista sa ibabaw:

Aron makadugang sa daghang mga virtual host sa Nginx, balika lang ang mga lakang nga gilatid sa ibabaw sa daghang mga higayon kung gikinahanglan.

Mga Virtual Host nga nakabase sa IP sa Nginx

Sukwahi sa name-based virtual hosts diin ang tanang hosts ma-access pinaagi sa samang IP address, IP-based virtual hosts nagkinahanglan ug lain nga IP:port nga kombinasyon matag usa.

Gitugotan niini ang web server nga ibalik ang lainlaing mga site depende sa IP address ug pantalan kung diin nadawat ang hangyo. Tungod kay ang mga virtual host nga gibase sa ngalan naghatag kanamo ug bentaha sa pagpaambit sa usa ka IP address ug pantalan, kini ang sukaranan alang sa mga web server nga pangkinatibuk-an ug kinahanglan nga kapilian nga pag-setup gawas kung ang imong gi-install nga bersyon sa Nginx wala nagsuporta sa Server Name Indication (SNI) , tungod kay kini usa ka TINUOD nga karaan nga bersyon, o tungod kay kini gihugpong nga wala ang –with-http_ssl_module compile option.

kung,

# nginx -V

wala ibalik ang gipasiugda nga mga kapilian sa ubos:

kinahanglan nimo nga i-update ang imong bersyon sa Nginx o i-recompile kini, depende sa imong orihinal nga pamaagi sa pag-install. Alang sa pag-compile sa Nginx, sunda ang artikulo sa ubos:

  1. I-install ug I-compile ang Nginx gikan sa Mga Tinubdan sa RHEL/CentOS 7

Sa pag-ingon nga maayo na kami nga moadto, kinahanglan namon nga timan-an nga ang usa pa nga kinahanglanon alang sa mga virtual nga host nga nakabase sa IP mao ang pagkaanaa sa lahi nga mga IP - pinaagi sa pag-assign kanila sa lahi nga mga interface sa network, o pinaagi sa paggamit sa mga virtual nga IP (nailhan usab nga IP aliasing. ).

Aron mahimo ang IP aliasing sa Debian (nagtuo nga ikaw naggamit sa eth0), i-edit ang /etc/network/interfaces ingon sa mosunod:

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

Sa pananglitan sa ibabaw naghimo kita og duha ka virtual NIC gikan sa eth0: eth0:1 (192.168.0.25) ug eth0:2 (192.168.0.26).

Sa CentOS, ilisan ang ngalan /etc/sysconfig/network-scripts/ifcfg-enp0s3 isip ifcfg-enp0s3:1 ug paghimo ug kopya isip ifcfg-enp0s3:2, ug dayon usba ang mosunod nga mga linya, matag usa:

DEVICE="enp0s3:1"
IPADDR=192.168.0.25

ug

DEVICE="enp0s3:2"
IPADDR=192.168.0.26

Kung nahuman na, i-restart ang serbisyo sa network:

# systemctl restart networking

Sunod, himoa ang mosunod nga mga pagbag-o sa mga bloke sa server nga gihubit kaniadto niini nga artikulo:

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

listen 192.168.0.25:80

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

listen 192.168.0.26:80

Sa katapusan, i-restart ang Nginx aron ma-epekto ang mga pagbag-o.

# systemctl restart nginx

ug ayaw kalimot sa pag-update sa imong lokal nga /etc/hosts sumala niana:

192.168.0.25 tecmintlovesnginx.com
192.168.0.26 nginxmeanspower.com

Busa, ang matag hangyo nga gihimo sa 192.168.0.25 ug 192.168.0.26 sa port 80 mobalik sa tecmintlovesnginx.com ug nginxmeanspower.com, matag usa:

Sama sa imong makita sa mga hulagway sa ibabaw, aduna ka nay duha ka IP-based virtual host nga naggamit sa bugtong NIC sa imong server nga adunay duha ka lain-laing mga IP alias.

Summary

Sa kini nga panudlo gipasabut namon kung giunsa ang pag-set up sa parehas nga nakabase sa ngalan ug nakabase sa IP nga mga virtual host sa Nginx. Bisan kung gusto nimo nga gamiton ang una nga kapilian, hinungdanon nga mahibal-an nga ang lain nga kapilian naa pa kung kinahanglan nimo kini - siguruha lang nga imong buhaton kini nga desisyon pagkahuman makonsiderar ang mga kamatuoran nga gilatid niini nga giya.

Dugang pa, mahimo nimong i-bookmark ang Nginx docs tungod kay kini takus ug maayo nga i-refer kini kanunay samtang nagmugna og mga bloke sa server (naa nimo kini - nagsulti kami sa Nginx nga pinulongan karon) ug gi-configure kini. Dili ka motuo sa tanan nga mga kapilian nga magamit aron ma-configure ug ma-tune kining talagsaon nga web server.

Sama sa kanunay, ayaw pagpanuko sa paghulog kanamo sa usa ka linya gamit ang porma sa ubos kung adunay ka mga pangutana o komento bahin sa kini nga artikulo. Kami nagpaabut nga makadungog gikan kanimo, ug ang imong feedback bahin niini nga giya giabiabi pag-ayo.