Hosting virtual Apache: amfitrions virtuals basats en IP i noms a RHEL/CentOS/Fedora


Com tots sabem que Apache és un servidor web molt potent, molt flexible i configurable per a Nix OS. Aquí, en aquest tutorial, parlarem d'una característica més d'Apache que ens permet allotjar més d'un lloc web en una única màquina Linux. La implementació d'allotjament virtual amb el servidor web Apache us pot ajudar a estalviar costos que esteu invertint en el manteniment del vostre servidor i la seva administració.

El concepte d'allotjament web compartit i allotjament web de distribuïdor només es basa en aquesta instal·lació d'Apache.

Hi ha dos tipus d'allotjament virtual disponible amb Apache.

Amb l'allotjament virtual basat en noms podeu allotjar diversos dominis/llocs web en una sola màquina amb una única IP. Tots els dominis d'aquest servidor compartiran una única IP. És més fàcil de configurar que l'allotjament virtual basat en IP, només cal que configureu el DNS del domini per mapejar-lo amb la seva adreça IP correcta i després configurar Apache perquè el reconegui amb els noms de domini.

Amb l'allotjament virtual basat en IP, podeu assignar una IP separada per a cada domini en un sol servidor, aquestes IP es poden connectar al servidor amb targetes NIC individuals i també amb diverses NIC.

Permet configurar l'allotjament virtual basat en noms i l'allotjament virtual basat en IP a RHEL, CentOS i Fedora.

  1. SO: CentOS 6.5
  2. Aplicació: servidor web Apache
  3. Adreça IP: 192.168.0.100
  4. Adreça IP: 192.168.0.101
  5. Domini: www.example1.com
  6. Domini: www.example2.com

Com configurar hosts virtuals Apache basats en IP i en noms

Abans de configurar l'allotjament virtual amb Apache, el vostre sistema ha de tenir instal·lat el programari web Apache. si no, instal·leu-lo mitjançant l'instal·lador de paquets predeterminat anomenat yum.

 yum install httpd

Però, abans de crear un host virtual, heu de crear un directori on guardareu tots els fitxers del vostre lloc web. Per tant, creeu directoris per a aquests dos amfitrions virtuals a la carpeta /var/www/html. Recordeu que /var/www/html serà l'arrel de document predeterminada a la configuració virtual d'Apache.

 mkdir /var/www/html/example1.com/
 mkdir /var/www/html/example2.com/

Per configurar l'allotjament virtual basat en noms, heu d'indicar a Apache quina IP utilitzareu per rebre les sol·licituds d'Apache per a tots els llocs web o noms de domini. Ho podem fer amb la directiva NameVirtualHost. Obriu el fitxer de configuració principal d'Apache amb l'editor VI.

 vi /etc/httpd/conf/httpd.conf

Cerqueu NameVirtualHost i elimineu el comentari d'aquesta línia eliminant el signe # que hi ha al davant.

NameVirtualHost

A continuació, afegiu la IP amb les possibles en què voleu rebre sol·licituds d'Apache. Després dels canvis, el vostre fitxer hauria de tenir aquest aspecte:

NameVirtualHost 192.168.0.100:80

Ara, és hora de configurar les seccions d'amfitrió virtual per als vostres dominis, aneu a la part inferior del fitxer prement Maj + G. En aquest exemple, estem configurant seccions d'amfitrió virtual per a dos dominis.

  1. www.example1.com
  2. www.example2.com

Afegiu les dues directives virtuals següents a la part inferior del fitxer. Desa i tanca el fitxer.

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

Podeu afegir tantes directives que vulgueu afegir a la secció d'amfitrió virtual dels vostres dominis. Quan hàgiu acabat amb els canvis al fitxer httpd.conf, comproveu la sintaxi dels fitxers amb l'ordre següent.

 httpd -t

Syntax OK

Es recomana comprovar la sintaxi del fitxer després de fer alguns canvis i abans de reiniciar el servidor web perquè si alguna sintaxi falla, Apache es negarà a treballar amb alguns errors i, finalment, afectarà el vostre servidor web existent durant un temps. Si la sintaxi és correcta. Si us plau, reinicieu el vostre servidor web i afegiu-lo a chkconfig perquè el vostre servidor web s'iniciï als nivells d'execució 3 i 5 només en el moment de l'arrencada.

 service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
 chkconfig --level 35 httpd on

Ara és el moment de crear una pàgina de prova anomenada index.html afegir contingut al fitxer així tindrem alguna cosa per comprovar-ho, quan la IP cridi a l'amfitrió virtual.

 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>

Un cop hàgiu acabat, podeu provar la configuració accedint als dos dominis en un navegador.

http://www.example1.com
http://www.example2.com

Per configurar l'allotjament virtual basat en IP, heu de tenir més d'una adreça IP/port assignada al vostre servidor o a la vostra màquina Linux.

Pot estar en una sola targeta NIC, per exemple: eth0:1, eth0:2, eth0:3... etc. També es poden adjuntar diverses targetes NIC. Si no sabeu com crear diverses IP a una única NIC, seguiu la guia següent, que us ajudarà a crear.

  1. Creeu diverses adreces IP en una única interfície de xarxa

El propòsit d'implementar l'allotjament virtual basat en IP és assignar la implementació per a cada domini i cap altre domini no utilitzarà aquesta IP en particular.

Aquest tipus de configuració és necessària quan un lloc web s'executa amb certificat SSL (mod_ssl) o en diferents ports i IP. I també podeu executar diverses instàncies d'Apache en una única màquina. Per comprovar les IP adjuntes al vostre servidor, comproveu-ho amb l'ordre 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)

Com podeu veure a la sortida anterior, dues IP 192.168.0.100 (eth0) i 192.168.0.101 (eth0:1) estan connectades al servidor, ambdues IP estan assignades al mateix dispositiu de xarxa física (eth0).

Ara, assigneu una IP/Port específic per rebre sol·licituds http, simplement podeu fer-ho canviant la directiva Listen al fitxer httpd.conf.

 vi /etc/httpd/conf/httpd.conf

Cerca la paraula \Escolta, trobaràs una secció on s'escriu una breu descripció sobre la directiva Listen. En aquesta secció, comenta la línia original i escriu la teva pròpia directiva a sota d'aquesta línia.

# Listen 80

Listen 192.168.0.100:80

Ara,  creeu seccions d'amfitrió virtual per als dos dominis. Aneu a la part inferior del fitxer i afegiu les següents directrius virtuals.

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

Ara, com que heu modificat el fitxer de configuració principal d'Apache, heu de reiniciar el servei http com a continuació.

 service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

Proveu la vostra configuració d'allotjament virtual basada en IP accedint als URL del navegador web tal com es mostra a continuació.

http://www.example1.com
http://www.example2.com

Això és tot amb l'amfitrió virtual d'Apache avui, si voleu assegurar i endurir la vostra configuració d'Apache, llegiu el nostre article que us guia.

  1. 13 Consells de seguretat i enduriment del servidor web Apache

Enllaços de referència

Documentació d'Apache Virtual Host

Tornaré amb altres consells i trucs d'Apache en els meus futurs articles, fins aleshores Mantingueu-vos geek i connectat a linux-console.net. No oblideu deixar els vostres suggeriments sobre l'article a la nostra secció de comentaris a continuació.