Stvaranje Apache virtualnih hostova temeljenih na imenu i IP-u u Linuxu


Virtualni hosting je koncept gdje se više web stranica ili domena nalazi na jednom poslužitelju, što se radi kako bi se smanjili troškovi resursa i tekući troškovi tvrtke ili organizacije.

Apache web poslužitelj pojednostavljuje hosting više stranica dopuštajući administratorima sustava da jednostavno konfiguriraju virtualne hostove za svaku web stranicu. Virtualni hosting može se temeljiti na IP-u ili na imenu.

U ovom vodiču istražujemo kako postaviti virtualni hosting u distribucijama temeljenim na RHEL-u kao što su Fedora, CentOS Stream, Rocky Linux, i Alma Linux koristeći virtualne hostove bazirane na IP-u i imenu u Linuxu.

Koncepti Dijeljenog web hostinga i Reseller web hostinga prvenstveno se temelje na ovoj značajci Apachea.

Vrste Apache virtualnog hostinga u Linuxu

Postoje dvije vrste virtualnog hostinga dostupnog s Apacheom.

Virtualni hosting temeljen na imenu

U ovoj vrsti hostinga, nekoliko domena ili web stranica može biti smješteno na jednom poslužitelju koristeći samo jednu IP adresu. Jednostavno rečeno, sve će domene dijeliti jednu IP adresu. Ovo je najjednostavnija vrsta virtualnog hostinga za konfiguriranje jer sve što trebate učiniti je mapirati nazive domena na IP adresu i zatim konfigurirati Apache virtualne hostove za svaki naziv domene.

IP virtualni hosting

Virtualni hosting temeljen na IP-u je mjesto gdje se svakoj domeni dodjeljuje jedinstvena IP adresa. Ove IP adrese mogu se priključiti na poslužitelj pomoću više NIC kartica ili jedne NIC kartice.

Okruženje za testiranje

  • OSFedora 34
  • AplikacijaApache web poslužitelj
  • IP adresa192.168.2.105
  • IP adresa192.168.2.106
  • Domenawww.mojadomena1.com
  • Domenawww.mojadomena2.com

Kako postaviti Apache virtualne hostove temeljene na IP-u i imenu

Prije nego što počnete, provjerite je li web poslužitelj Apache instaliran na vašem sustavu pomoću naredbe dnf kao što je prikazano.

sudo dnf install httpd -y

Postavite virtualni hosting na temelju imena

Prvi korak u postavljanju virtualnog hostinga temeljenog na imenu je postavljanje rezolucije naziva domene u datoteci /etc/hosts. Stoga pokrenite sljedeće naredbe kao root korisnik da dodate unose naziva domene koji upućuju na IP adresu glavnog računala.

echo '192.168.2.105 www.mydomain1.com' >> /etc/hosts
echo '192.168.2.105 www.mydomain2.com' >> /etc/hosts

Sljedeći korak je stvaranje direktorija koji će sadržavati datoteke web stranice. Stoga ćemo stvoriti dva direktorija za virtualne hostove u korijenu dokumenta koji je mapa /var/www/html u Apache konfiguraciji.

sudo mkdir /var/www/html/mydomain1.com/
sudo mkdir /var/www/html/mydomain2.com/

Sljedeći korak je modificiranje datoteke virtualnog hosta koja će uputiti Apache da IP sluša dolazne zahtjeve Apache web poslužitelja za sve nazive domena. Stoga otvorite Apache konfiguracijsku datoteku koristeći svoj omiljeni uređivač teksta.

sudo vim /etc/httpd/conf/httpd.conf

Dodajte sljedeće blokove koda za dva virtualna hosta.

<VirtualHost 192.168.2.105:80>
   ServerName mydomain1.com
   ServerAlias www.mydomain1.com
   DocumentRoot /var/www/html/mydomain1.com/
ErrorLog logs/www.mydomain1.com-error_log
CustomLog logs/www.mydomain1.com-access_log common
</VirtualHost>


<VirtualHost 192.168.2.105:80>
    ServerName mydomain2.com
    ServerAlias www.mydomain2.com
    DocumentRoot /var/www/html/mydomain2.com
ErrorLog logs/www.mydomain2.com-error_log
CustomLog logs/www.mydomain2.com-access_log common
</VirtualHost>

Spremite promjene i izađite. Zatim provjerite je li sintaksa u redu i nema li pogrešaka.

httpd -t

Zatim ćemo izraditi HTML testne stranice za svaku od domena i dodati neki sadržaj kao način potvrde radi li sve ispravno u pregledniku.

Za mojadomena1.com

Napravite datoteku index.html u direktoriju mydomain1.com.

sudo vim /var/www/html/mydomain1.com/index.html 

Zalijepite sljedeće retke.

<html>
  <head>
    <title>My sample site</title>
  </head>
  <body>
    <h1>Success! Welcome to mydomain1.com.</h1>
  </body>
</html>

Spremite promjene i izađite iz datoteke.

Za mojadomena2.com

Napravite datoteku index.html u direktoriju mydomain2.com.

sudo vim /var/www/html/mydomain2.com/index.html 

Zalijepite sljedeće retke.

<html>
  <head>
    <title>My sample site</title>
  </head>
  <body>
    <h1>Success! Welcome to mydomain2.com.</h1>
  </body>
</html>

Spremite promjene i izađite iz datoteke.

Sada pokrenite Apache web poslužitelj i potvrdite da radi.

sudo systemctl start httpd
sudo systemctl status httpd

Ako imate omogućen vatrozid, dopustite HTTP i HTTPS (kada je potrebno) promet.

sudo firewall-cmd --add-service=http --zone=public --permanent
sudo firewall-cmd --add-service=https --zone=public --permanent
sudo firewall-cmd --reload

Sada testirajte domene iz preglednika.

Postavljanje virtualnog hostinga Linuxa temeljenog na IP-u

Virtualni hosting temeljen na IP-u, kao što ime sugerira, uključuje više IP adresa dodijeljenih vašem Linux poslužitelju. U većini slučajeva dvije ili više NIC kartica priključene su na vaš sustav kako bi se dobilo više IP adresa.

Cilj virtualnog hostinga temeljenog na IP-u je dodijeliti svakoj domeni jedinstvenu IP adresu koju neće koristiti niti jedna druga domena.

Ovo je idealno za situacije kada imate web stranice šifrirane SSL certifikatom (mod_ssl) ili rade na različitim portovima. U našoj postavci imamo dva NIC adaptera.

Za pregled IP konfiguracije na vašem sustavu, pokrenite ifconfig ili ip naredbu.

ifconfig
OR
ip addr

Naš poslužitelj ima dvije IP adrese, svaka dodijeljena jednom NIC-u. IP 192.168.2.106 dodijeljen je ens160, a 192.168.2.105 dodijeljen je ens224.

Još jednom, konfigurirajmo datoteku httpd.conf.

sudo vim /etc/httpd/conf/httpd.conf

Stvorite virtualne hostove za obje domene kao što je prikazano. Provjerite je li svaka IP adresa dodijeljena odgovarajućoj konfiguraciji virtualnog hosta.

<VirtualHost 192.168.2.105:80>
   ServerName mydomain1.com
   ServerAlias www.mydomain1.com
   DocumentRoot /var/www/html/mydomain1.com/
ErrorLog logs/www.mydomain1.com-error_log
CustomLog logs/www.mydomain1.com-access_log common
</VirtualHost>


<VirtualHost 192.168.2.106:80>
    ServerName mydomain2.com
    ServerAlias www.mydomain2.com
    DocumentRoot /var/www/html/mydomain2.com
ErrorLog logs/www.mydomain2.com-error_log
CustomLog logs/www.mydomain2.com-access_log common
</VirtualHost>

Spremite i izađite iz konfiguracijske datoteke. Zatim izmijenite datoteku /etc/hosts kao što je prikazano.

echo '192.168.2.105 www.mydomain1.com' >> /etc/hosts
echo '192.168.2.106 www.mydomain2.com'>> /etc/hosts

Potvrdite unose:

cat /etc/hosts

192.168.2.105 www.mydomain1.com
192.168.2.106 www.mydomain2.com

Zatim ponovno pokrenite Apache web poslužitelj kako bi promjene stupile na snagu.

sudo systemctl restart httpd

Konačno, testirajte svoju postavku virtualnog hostinga temeljenu na IP-u pristupom prikazanim URL-ovima.

http://192.168.2.105
http://192.168.2.106

Ovaj test potvrđuje da virtualni hosting temeljen na IP-u radi kako se i očekivalo!

Zaključak

I to je to za ovo predavanje. Nadamo se da možete neprimjetno konfigurirati obje vrste virtualnog hostinga bez većih problema. Cijenimo vaše povratne informacije o ovom vodiču.