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
- OS – Fedora 34
- Aplikacija – Apache web poslužitelj
- IP adresa – 192.168.2.105
- IP adresa – 192.168.2.106
- Domena – www.mojadomena1.com
- Domena – www.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.