Apache Virtual Hosting: IP-baserede og navnebaserede virtuelle værter i RHEL/CentOS/Fedora
Som vi alle er klar over, at Apache er en meget kraftfuld, meget fleksibel og konfigurerbar webserver til Nix OS. Her i denne vejledning skal vi diskutere endnu en funktion i Apache, som giver os mulighed for at være vært for mere end et websted på en enkelt Linux-maskine. Implementering af virtuel hosting med Apache-webserver kan hjælpe dig med at spare omkostninger, du investerer i din servervedligeholdelse og deres administration.
Begrebet delt webhosting og forhandlerwebhosting er kun baseret på denne facilitet fra Apache.
Der er to typer virtuel hosting er tilgængelig med Apache.
Med den navnebaserede virtuelle hosting kan du være vært for flere domæner/websteder på en enkelt maskine med en enkelt IP. Alle domæner på denne server deler en enkelt IP. Det er nemmere at konfigurere end IP-baseret virtuel hosting, du behøver kun at konfigurere DNS for domænet for at kortlægge det med sin korrekte IP-adresse og derefter konfigurere Apache til at genkende det med domænenavne.
Med den IP-baserede virtuelle hosting kan du tildele en separat IP til hvert domæne på en enkelt server, disse IP'er kan knyttes til serveren med enkelt NIC-kort og såvel som flere NIC'er.
Lad os oprette navnebaseret virtuel hosting og IP-baseret virtuel hosting i RHEL, CentOS og Fedora.
- OS - CentOS 6.5
- Applikation - Apache-webserver
- IP-adresse - 192.168.0.100
- IP-adresse - 192.168.0.101
- Domæne - www.eksempel1.com
- Domæne - www.eksempel2.dk
Sådan konfigureres IP-baserede og navnebaserede virtuelle Apache-værter
Før du opretter virtuel hosting med Apache, skal dit system have Apache Web-software installeret. hvis ikke, skal du installere det ved hjælp af standardpakkeinstallationsprogrammet kaldet yum.
yum install httpd
Men inden du opretter en virtuel vært, skal du oprette et bibliotek, hvor du gemmer alle dine websides filer. Så lav mapper til disse to virtuelle værter under/var/www/html-mappen. Husk, at/var/www/html vil være din standard Dokumentrod i den virtuelle Apache-konfiguration.
mkdir /var/www/html/example1.com/ mkdir /var/www/html/example2.com/
For at konfigurere navnebaseret virtuel hosting skal du fortælle Apache til hvilken IP du bruger til at modtage Apache-anmodningerne om alle websteder eller domænenavne. Vi kan gøre dette med NameVirtualHost-direktivet. Åbn Apache hovedkonfigurationsfil med VI editor.
vi /etc/httpd/conf/httpd.conf
Søg efter NameVirtualHost og fjern kommentar til denne linje ved at fjerne # -tegnet foran den.
NameVirtualHost
Dernæst tilføj IP'en med mulig, hvor du vil modtage Apache-anmodninger. Efter ændringerne skal din fil se sådan ud:
NameVirtualHost 192.168.0.100:80
Nu er det tid til at konfigurere virtuelle værtssektioner til dine domæner, gå til bunden af filen ved at trykke på Shift + G. Her i dette eksempel opretter vi virtuelle værtssektioner til to domæner
- www.eksempel1.com
- www.eksempel2.dk
Tilføj følgende to virtuelle direktiver i bunden af filen. Gem og luk filen.
<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>
Du er fri til at tilføje så mange direktiver, du vil tilføje, i din virtuelle værts sektion for domæner. Når du er færdig med ændringer i httpd.conf-filen, skal du kontrollere syntaksen for filer med følgende kommando.
httpd -t Syntax OK
Det anbefales at kontrollere filens syntaks efter nogle ændringer og inden genstart af webserveren, for hvis nogen syntaks går galt, vil Apache nægte at arbejde med nogle fejl og i sidste ende påvirke din eksisterende webserver gå ned et stykke tid. Hvis syntaksen er OK. Genstart din webserver og tilføj den til chkconfig for at få din webserver til at starte i køreplan 3 og 5 kun ved opstartstidspunktet.
service httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ]
chkconfig --level 35 httpd on
Nu er det tid til at oprette en testside kaldet index.html tilføje noget indhold til filen, så vi har noget at kontrollere det, når IP'en kalder den virtuelle vært.
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>
Når du er færdig med det, kan du teste opsætningen ved at få adgang til begge domænerne i en browser.
http://www.example1.com http://www.example2.com
For at konfigurere IP-baseret virtuel hosting skal du have mere end en IP-adresse/port tildelt din server eller din Linux-maskine.
Det kan være på et enkelt NIC-kort, for eksempel: eth0: 1, eth0: 2, eth0: 3 ... osv. Flere NIC-kort kan også vedhæftes. Hvis du ikke ved, hvordan du opretter flere IP'er på enkelt NIC, skal du følge nedenstående vejledning, som hjælper dig med at oprette.
- Opret flere IP-adresser til en enkelt netværksgrænseflade
Formålet med implementering af IP-baseret virtuel hosting er at tildele implementering til hvert domæne, og den pågældende IP vil ikke blive brugt af noget andet domæne.
Denne form for opsætning kræves, når et websted kører med SSL-certifikat (mod_ssl) eller på forskellige porte og IP'er. Og du kan også køre flere forekomster af Apache på en enkelt maskine. For at kontrollere IP'erne, der er knyttet til din server, skal du kontrollere det ved hjælp af kommandoen ifconfig.
[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)
Som du kan se i ovenstående output, er to IP'er 192.168.0.100 (eth0) og 192.168.0.101 (eth0: 1) knyttet til serveren, begge IP'er tildeles den samme fysiske netværksenhed (eth0).
Nu skal du tildele en bestemt IP/Port til at modtage http-anmodninger, du kan simpelthen gøre det ved at ændre lyttedirektivet i httpd.conf-filen.
vi /etc/httpd/conf/httpd.conf
Søg efter ordet "Lyt", du finder et afsnit, hvor den korte beskrivelse om lyttedirektivet er skrevet. I dette afsnit skal du kommentere den originale linje og skrive dit eget direktiv under denne linje.
# Listen 80 Listen 192.168.0.100:80
Opret nu en virtuel værtssektion for begge domæner. Gå i bunden af filen, og tilføj følgende virtuelle direktiver.
<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>
Nu, da du har ændret den primære Apache-conf-fil, skal du genstarte http-tjenesten som nedenfor.
service httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ]
Test din IP-baserede Virtual Hosting-opsætning ved at få adgang til URL'erne i webbrowseren som vist nedenfor.
http://www.example1.com http://www.example2.com
Det er alt sammen med Apache virtuelle vært i dag. Hvis du ønsker at sikre og hærde din Apache-konfiguration, så læs vores artikel, der guider.
- 13 Tips til sikkerhed og hærdning af Apache-webserver
Reference Links
Apache Virtual Host-dokumentation
Jeg kommer igen med nogle andre Apache-tip og trick i mine fremtidige artikler, indtil da Stay Geeky og forbundet til linux-console.net. Glem ikke at efterlade dine forslag til artiklen i vores kommentarsektion nedenfor.