Käyttämällä Apache Virtual Hostia voit käyttää useita verkkosivustoja samalla palvelimella.
Voin esimerkiksi käyttää sekä thegeekstuff.com että top5freeware.com yhdellä fyysisellä palvelimella, jossa on käynnissä yksi Apache-verkkopalvelin.
Kuva: Apache Virtual Host (useita verkkosivustoja, yksi Apache)
On olemassa kahdenlaisia Apache-virtuaaliisäntäkokoonpanoja: 1) IP-pohjainen virtuaalipalvelin ja 2) nimipohjainen virtuaalipalvelin. Nimipohjaista virtuaalipalvelinta suositellaan useimpiin tilanteisiin.
Kun tässä kokoonpanossa osoitat kaksi verkkosivustoa (joilla on eri IP-osoite) Apachea käyttävään palvelimeen, kyseiselle fyysiselle palvelimelle tulee olla määritettynä kaksi eri IP-osoitetta. .
Tämä tarkoittaa, että palvelimella tulee olla kaksi ethernet-korttia, joista jokainen on määritetty sen vastaavan verkkosivuston IP-osoitteeseen, jota Apache-virtuaalipalvelin palvelee. Joten tämä ei ole käytännöllistä useimmissa asioissa, eikä sinun pitäisi käyttää tätä.
Seuraavassa esimerkissä palvelin sisältää kaksi NIC-korttia, joista toinen on määritetty 192.168.101.1 ip-osoitteella thegeekstuff.comille ja toinen 192.168.102.1 top5freeware.com:lle. Molempia IP-osoitteita palvelee yksi Apache-verkkopalvelin, joka toimii kyseisellä palvelimella käyttämällä IP-pohjaista virtuaalipalvelinta.
Kuva: Apache IP-pohjainen virtuaalipalvelin
Tässä kokoonpanossa, kun Apache-verkkopalvelin vastaanottaa pyynnön, se etsii isäntänimeä HTTP-otsikosta ja isäntänimestä riippuen se palvelee eri verkkosivustoja. Tämä on erittäin helppoa, koska tarvitset vain yhden ip-osoitteen kyseisellä fyysisellä palvelimella; mutta päivität DNS:n useilla verkkosivustojen nimillä, jotka osoittavat samaan IP-osoitteeseen. Käytännön syistä käytät vain nimipohjaista virtuaaliisäntäkokoonpanoa.
Seuraavassa esimerkissä palvelin sisältää vain yhden NIC-kortin, jonka ip-osoite on 192.168.101.1. Sekä thegeekstuff.com- että top5freeware.com-sivuston DNS-merkintä osoittaa 192.168.101.1 ip-osoitteeseen. Kun Apache vastaanottaa pyynnön, se etsii isäntänimimerkinnän HTTP-otsikosta ja palvelee vastaavaa verkkosivustoa.
Kuva: Apache-nimipohjainen virtuaalipalvelin
Jos olet asentanut Apache 2:n lähdekoodista, oletusarvoisesti seuraava rivi kommentoi httpd.conf-tiedostoa. Poista tämän rivin kommentti.
# vi /usr/local/apache2/conf/httpd.confSisällytä conf/extra/httpd-vhosts.confMuokkaa httpd-vhosts.conf-tiedostoa alla kuvatulla tavalla määrittääksesi nimettyjen virtuaaliisäntäasetusten kahdelle isännälle.
NameVirtualHost *:80 – Ilmaisee, että kaikki nimipohjaiset virtuaalipalvelimet kuuntelevat oletusporttia. 80 – Liitä kaikki apache-määritysparametrit jokaiselle virtuaaliselle isännälle näiden VirtualHost-tunnisteiden väliin. Mitä tahansa apache-käskyä voidaan käyttää virtualhost-säilön sisällä.Seuraavassa esimerkissä asetamme virtuaalisen isännän osoitteelle thegeekstuff.com ja top5freeware.com, jotka kuuntelevat samaa porttia 80. Niitä on siis kaksi, yksi jokaiselle verkkosivustolle.Kun siirryt osoitteeseen thegeekstuff.com, Apache palvelee /usr/local/apache2/docs/thegeekstuff-tiedostoja; ja tämän sivuston access_log- ja error_log-tiedostot löytyvät hakemistosta /usr/local/apache2/logs/thegeekstuff# vi /usr/local/apache2/conf/extra/httpd-vhosts.confNameVirtualHost *:80ServerAdmin ramesh@thegeekstuffRoot.comDocurment /local/apache2/docs/thegeekstuff"ServerName thegeekstuff.comServerAlias www.thegeekstuff.comErrorLog "logs/thegeekstuff/error_log"CustomLog "logs/thegeekstuff/access_log" commonServerAdminRolocal. docs/top5freeware "ServerName top5freeware.comServerAlias www.top5freeware.comErrorLog "logs/top5freeware/error_log"CustomLog "logs/top5freeware/access_log" yleinenTarkista virtuaalikokoonpanon syntaksi käyttämällä "httpd -S" alla olevan kuvan mukaisesti. Kun kaikki on asetettu oikein, se näyttää vain "Syntaksi OK".
# /usr/local/apache2/bin/httpd -SVirtualHost configuration:Syntaksi OKJos jotain ei ole määritetty oikein, se näyttää varoitusviestin, mukaan lukien "hakemisto ei poistu" -viestin alla olevan kuvan mukaisesti.
# /usr/local/apache2/bin/httpd -Varoitus: DocumentRoot [/usr/local/apache2/docs/top5freeware] ei ole olemassa Varoitus: ErrorLog [/usr/local/apache2/logs/thegeekstuff] ei ole Syntaksi OKKun nyt siirryt osoitteeseen thegeekstuff.com (tai www.thegeekstuff.com), apache palvelee tiedostoja osoitteesta / usr/local/apache2/docs/thegeekstuff-hakemisto.
Kun siirryt osoitteeseen top5freeware.com (tai www.top5freeware.com), sama apache, joka toimii samalla palvelimella, palvelee tiedostoja /usr/local/apache2/docs/top5freeware-hakemistosta.
Jotta nimipohjainen virtuaalinen isäntä toimisi kunnolla, molempien sivustojen DNS-merkinnän tulee osoittaa samaan ulkoiseen IP-osoitteeseen siinä fyysisessä palvelimessa, jossa Apache-verkkopalvelin toimii.
PREV: Parhaan DNS:n löytäminen PS4:lle vuonna 2021 | TechyThing
NEXT: Ei saada yhteyttä DHCP-palvelimeen | DHCP-vianmääritys