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.

  1. OS - CentOS 6.5
  2. Applikation - Apache-webserver
  3. IP-adresse - 192.168.0.100
  4. IP-adresse - 192.168.0.101
  5. Domæne - www.eksempel1.com
  6. 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

  1. www.eksempel1.com
  2. 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.

  1. 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.

  1. 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.