Kreirajte virtuelne hostove zasnovane na Apache imenu i IP-u u Linuxu


Virtualni hosting je koncept u kojem se više web lokacija ili domena hostuje na jednom serveru, što je učinjeno kako bi se smanjili troškovi resursa i tekući troškovi poslovanja ili organizacije.

Apache web server pojednostavljuje hostovanje više lokacija tako što omogućava administratorima sistema da lako konfigurišu virtuelne hostove za svaku veb lokaciju. Virtuelni hosting može biti baziran na IP-u ili na imenu.

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

Koncepti Shared Web Hosting i Reseller Web Hosting zasnivaju se prvenstveno na ovoj osobini Apachea.

Vrste Apache virtuelnog hostinga u Linuxu

Postoje dvije vrste Virtuelnog hostinga koje su dostupne uz Apache.

Virtuelni hosting zasnovan na nazivu

U ovoj vrsti hostinga, nekoliko domena ili web stranica može biti hostirano na jednom serveru koristeći samo jednu IP adresu. Jednostavno rečeno, svi domeni će dijeliti jednu IP adresu. Ovo je najlakši tip virtualnog hostinga za konfiguraciju jer sve što trebate učiniti je mapirati imena domena na IP adresu, a zatim konfigurirati Apache virtualne hostove za svako od imena domena.

IP baziran virtuelni hosting

Virtuelni hosting zasnovan na IP-u je mesto gde se svakoj domeni dodeljuje jedinstvena IP adresa. Ove IP adrese se mogu povezati sa serverom pomoću više NIC kartica ili jedne NIC kartice.

Testing Environment

  • OSFedora 34
  • AplikacijaApache web server
  • IP adresa192.168.2.105
  • IP adresa192.168.2.106
  • Domenawww.mydomain1.com
  • Domenawww.mydomain2.com

Kako podesiti Apache virtuelne hostove zasnovane na IP-u i imenu

Prije nego što počnete, uvjerite se da je web server Apache instaliran na vašem sistemu pomoću naredbe dnf kao što je prikazano.

sudo dnf install httpd -y

Podešavanje virtuelnog hostinga zasnovanog na imenu

Prvi korak u postavljanju virtuelnog hostinga zasnovanog na imenu je postavljanje rezolucije imena domene u datoteci /etc/hosts. Stoga, pokrenite sljedeće naredbe kao root korisnik da biste dodali unose imena domena koji upućuju na IP adresu hosta.

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

Sljedeći korak je kreiranje direktorija koji će sadržavati datoteke web stranice. Stoga ćemo kreirati dva direktorija za virtuelne hostove u korijenu dokumenta koji je /var/www/html folder u Apache konfiguraciji.

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

Sljedeći korak je modifikacija virtualne datoteke hosta koja će uputiti Apacheu IP da sluša dolazne zahtjeve Apache web servera za sva imena domena. Stoga otvorite Apache konfiguracijsku datoteku koristeći željeni 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>

Sačuvajte promjene i izađite. Zatim provjerite da li je sintaksa u redu i da li nema grešaka.

httpd -t

Zatim ćemo kreirati HTML test stranice za svaki od domena i dodati neki sadržaj kao način potvrde da li sve radi ispravno iz pretraživača.

Za mydomain1.com

Kreirajte datoteku index.html u direktoriju mydomain1.com.

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

Zalijepite sljedeće redove.

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

Sačuvajte promjene i izađite iz datoteke.

Za mydomain2.com

Kreirajte datoteku index.html u direktoriju mydomain2.com.

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

Zalijepite sljedeće redove.

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

Sačuvajte promjene i izađite iz datoteke.

Sada pokrenite Apache web server i potvrdite da radi.

sudo systemctl start httpd
sudo systemctl status httpd

Ako imate omogućen zaštitni zid, dozvolite HTTP i HTTPS (po potrebi) saobraćaj.

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 pretraživača.

Podešavanje virtuelnog hostinga zasnovanog na IP-u Linux

Virtuelni hosting zasnovan na IP-u, kao što ime sugeriše, uključuje više IP adresa dodeljenih vašem Linux serveru. U većini slučajeva, dvije ili više NIC kartica su priključene na vaš sistem kako bi se dobilo više IP adresa.

Cilj virtuelnog hostinga zasnovanog na IP-u je da se svakoj domeni dodeli jedinstvena IP adresa koju neće koristiti nijedan drugi domen.

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

Da vidite IP konfiguraciju na vašem sistemu, pokrenite ifconfig ili ip a komandu.

ifconfig
OR
ip addr

Naš server ima dvije IP adrese, od kojih je svaka dodijeljena jednoj NIC. IP 192.168.2.106 je dodijeljen ens160, a 192.168.2.105 je dodijeljen ens224.

Još jednom, hajde da konfigurišemo datoteku httpd.conf.

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

Kreirajte virtuelne hostove za obe domene kao što je prikazano. Budite sigurni da je 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>

Sačuvajte i izađite iz konfiguracione 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 ponovo pokrenite Apache web server kako bi promjene stupile na snagu.

sudo systemctl restart httpd

Konačno, testirajte svoje postavke virtualnog hostinga zasnovane na IP-u tako što ćete pristupiti URL-ovima kao što je prikazano.

http://192.168.2.105
http://192.168.2.106

Ovaj test potvrđuje da virtuelni hosting zasnovan na IP-u radi onako kako se 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. Vaše povratne informacije o ovom vodiču su veoma cijenjene.