Apache Virtual Hosting: IP Based ug Name Based Virtual Hosts sa RHEL/CentOS/Fedora


Sama sa nahibal-an natong tanan nga ang Apache usa ka gamhanan kaayo, flexible ug ma-configure nga Web server alang sa Nix OS. Dinhi niini nga panudlo, atong hisgutan ang usa pa ka bahin sa Apache nga nagtugot kanato sa pag-host sa labaw sa usa ka website sa usa ka Linux machine. Ang pagpatuman sa virtual hosting uban sa Apache web server makatabang kanimo nga makadaginot sa mga gasto nga imong gipuhunan sa pagmentinar sa imong server ug sa ilang administrasyon.

Ang konsepto sa Shared web hosting ug Reseller web hosting gibase sa kini nga pasilidad sa Apache lamang.

Adunay duha ka matang sa virtual hosting nga magamit sa Apache.

Uban sa ngalan nga gibase sa virtual hosting mahimo ka mag-host sa daghang mga domain/website sa usa ka makina nga adunay usa ka IP. Ang tanan nga mga dominyo sa kana nga server mag-ambit sa usa ka IP. Mas sayon ang pag-configure kay sa IP based virtual hosting, kinahanglan lang nimo nga i-configure ang DNS sa domain aron ma-mapa kini sa hustong IP address niini ug dayon i-configure ang Apache aron mailhan kini sa mga domain name.

Uban sa IP nga nakabase sa virtual hosting, mahimo kang mag-assign sa usa ka bulag nga IP alang sa matag domain sa usa ka server, kini nga mga IP mahimong ilakip sa server nga adunay usa ka NIC card ug ingon man daghang mga NIC.

Atong i-set up ang Name Based Virtual Hosting ug IP based Virtual hosting sa RHEL, CentOS ug Fedora.

  1. OS – CentOS 6.5
  2. Aplikasyon – Apache Web Server
  3. IP Address – 192.168.0.100
  4. IP Address – 192.168.0.101
  5. Domain – www.example1.com
  6. Domain – www.example2.com

Giunsa ang Pag-setup sa IP Based ug Name Based Apache Virtual Hosts

Sa wala pa i-set up ang virtual hosting sa Apache, ang imong sistema kinahanglan nga adunay Apache Web software nga na-install. kung dili, i-install kini gamit ang default package installer nga gitawag yum.

 yum install httpd

Apan, sa wala pa maghimo usa ka virtual host, kinahanglan nimo nga maghimo usa ka direktoryo diin imong tipigan ang tanan nga mga file sa imong website. Busa, paghimo og mga direktoryo alang niining duha ka mga virtual host ubos sa /var/www/html folder. Palihug hinumdumi nga /var/www/html mao ang imong default nga Document Root sa Apache virtual configuration.

 mkdir /var/www/html/example1.com/
 mkdir /var/www/html/example2.com/

Aron ma-set up ang Name based virtual hosting kinahanglan nimo nga isulti sa Apache kung asa nga IP imong gamiton aron makadawat sa mga hangyo sa Apache para sa tanang website o domain name. Mahimo nato kini sa direktiba sa NameVirtualHost. Ablihi ang Apache main configuration file gamit ang VI editor.

 vi /etc/httpd/conf/httpd.conf

Pangitaa ang NameVirtualHost ug i-uncomment kini nga linya pinaagi sa pagtangtang sa # sign sa atubangan niini.

NameVirtualHost

Sunod idugang ang IP nga posible kung diin gusto nimo makadawat mga hangyo sa Apache. Pagkahuman sa mga pagbag-o, ang imong file kinahanglan nga ingon niini:

NameVirtualHost 192.168.0.100:80

Karon, panahon na sa pag-setup sa mga seksyon sa Virtual host alang sa imong mga domain, balhin sa ubos sa file pinaagi sa pagpindot sa Shift + G. Dinhi niini nga pananglitan, Nag-set up kami og mga virtual host nga seksyon alang sa duha ka domain

  1. www.example1.com
  2. www.example2.com

Idugang ang mosunod nga duha ka virtual nga direktiba sa ubos sa file. I-save ug isira ang file.

<VirtualHost 192.168.0.100:80>
    ServerAdmin [email 
    DocumentRoot /var/www/html/example1.com
    ServerName www.example1.com
ErrorLog logs/www.example1.com-error_log
CustomLog logs/www.example1.com-access_log common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin [email 
    DocumentRoot /var/www/html/example2.com
    ServerName www.example2.com
ErrorLog logs/www.example2.com-error_log
CustomLog logs/www.example2.com-access_log common
</VirtualHost>

Libre ka nga makadugang sa daghang mga direktiba nga gusto nimong idugang sa seksyon sa virtual host sa imong domain. Kung nahuman na nimo ang mga pagbag-o sa httpd.conf file, palihug susiha ang syntax sa mga file nga adunay mosunod nga mando.

 httpd -t

Syntax OK

Girekomenda nga susihon ang syntax sa file pagkahuman sa paghimo sa pipila nga mga pagbag-o ug sa dili pa i-restart ang Web server tungod kay kung adunay bisan unsang syntax nga sayup ang Apache magdumili sa pagtrabaho sa pipila ka mga sayup ug sa katapusan makaapekto sa imong naa na nga web server nga mawala sa makadiyot. Kung ang syntax OK ra. Palihug i-restart ang imong Web server ug idugang kini sa chkconfig aron ang imong web server magsugod sa runlevel 3 ug 5 sa boot time lang.

 service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
 chkconfig --level 35 httpd on

Karon na ang panahon sa paghimo og usa ka panid sa pagsulay nga gitawag og index.html pagdugang pipila ka sulud sa file aron adunay kami usa ka butang nga susihon kini, kung ang IP nagtawag sa virtual host.

 vi /var/www/html/example1.com/index.html
<html>
  <head>
    <title>www.example1.com</title>
  </head>
  <body>
    <h1>Hello, Welcome to www.example1.com.</h1>
  </body>
</html>
 vi /var/www/html/example2.com/index.html
<html>
  <head>
    <title>www.example2.com</title>
  </head>
  <body>
    <h1>Hello, Welcome to www.example2.com.</h1>
  </body>
</html>

Kung nahuman na nimo kini, mahimo nimong sulayan ang pag-setup pinaagi sa pag-access sa duha nga mga domain sa usa ka browser.

http://www.example1.com
http://www.example2.com

Aron ma-setup ang IP based virtual hosting, kinahanglan nga adunay labaw sa usa ka IP address/Port nga gi-assign sa imong server o sa imong Linux machine.

Mahimo kini sa usa ka NIC card , Pananglitan: eth0:1, eth0:2, eth0:3 … ug uban pa. Mahimo usab nga i-attach ang daghang NIC card. Kung wala ka kahibalo kung giunsa paghimo ang daghang mga IP sa usa ka NIC, sunda ang giya sa ubos, nga makatabang kanimo sa paghimo.

  1. Paghimo og Daghang IP Address ngadto sa Usa ka Interface sa Network

Ang katuyoan sa pag-implementar sa IP base sa virtual hosting mao ang pag-assign sa pagpatuman sa matag domain ug kana nga partikular nga IP dili gamiton sa bisan unsang laing domain.

Kini nga matang sa set up gikinahanglan kung ang usa ka website nagdagan gamit ang SSL certificate (mod_ssl) o sa lain-laing mga pantalan ug mga IP. Ug mahimo ka usab nga modagan daghang mga higayon sa Apache sa usa ka makina. Aron masusi ang mga IP nga gilakip sa imong server, palihug susiha kini gamit ang ifconfig command.

[email  ~]# ifconfig
 
eth0      Link encap:Ethernet  HWaddr 08:00:27:4C:EB:CE  
          inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe4c:ebce/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:17550 errors:0 dropped:0 overruns:0 frame:0
          TX packets:15120 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:16565983 (15.7 MiB)  TX bytes:2409604 (2.2 MiB)

eth0:1    Link encap:Ethernet  HWaddr 08:00:27:4C:EB:CE  
          inet addr:192.168.0.101  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1775 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1775 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:3416104 (3.2 MiB)  TX bytes:3416104 (3.2 MiB)

Sama sa imong makita sa ibabaw nga output, duha ka IPs 192.168.0.100 (eth0) ug 192.168.0.101 (eth0:1) ang gilakip sa server, ang duha ka IP gi-assign sa parehas nga physical network device (eth0).

Karon, pag-assign ug piho nga IP/Port aron makadawat sa mga hangyo sa http, mahimo nimo kini pinaagi sa pag-usab sa direktiba sa Listen sa httpd.conf file.

 vi /etc/httpd/conf/httpd.conf

Pangitaa ang pulong nga \Paminaw, Makita nimo ang usa ka seksyon diin ang mubo nga paghulagway bahin sa direktiba sa Listen gisulat. Sa kana nga seksyon, ikomento ang orihinal nga linya ug isulat ang imong kaugalingon nga direktiba sa ubos sa linya.

# Listen 80

Listen 192.168.0.100:80

Karon,  paghimo ug Virtual host nga mga seksyon para sa duha ka domain. Lakaw sa ubos sa file ug idugang ang mosunod nga virtual nga mga direktiba.

<VirtualHost 192.168.0.100:80>
    ServerAdmin [email 
    DocumentRoot /var/www/html/example1
    ServerName www.example1.com
ErrorLog logs/www.example1.com-error_log
TransferLog logs/www.example1.com-access_log
</VirtualHost>

<VirtualHost 192.168.0.101:80>
    ServerAdmin [email 
    DocumentRoot /var/www/html/example2
    ServerName www.example2.com
ErrorLog logs/www.example2.com-error_log
TransferLog logs/www.example2.com-access_log
</VirtualHost>

Karon, tungod kay imong giusab ang panguna nga Apache conf file, kinahanglan nimo nga i-restart ang serbisyo sa http sama sa ubos.

 service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

Sulayi ang imong IP based Virtual hosting setup pinaagi sa pag-access sa mga URL sa web browser sama sa gipakita sa ubos.

http://www.example1.com
http://www.example2.com

Kana ang tanan sa Apache virtual host karon, Kung nangita ka aron masiguro ug matig-a ang imong configuration sa Apache, unya basaha ang among artikulo nga naggiya.

  1. 13 Apache Web Server Security ug Hardening Tips

Mga Reperensya nga Link

Apache Virtual Host Documentation

Mobalik ako pag-usab uban ang uban pang mga tip ug limbong sa Apache sa akong umaabot nga mga artikulo, hangtod nga Magpabilin nga Geeky ug konektado sa linux-console.net. Ayaw kalimti nga ibilin ang imong mga sugyot bahin sa artikulo sa among seksyon sa komento sa ubos.