Configuración de Virtual Host en Apache HTTP 2.4

De MediaWiki
Ir a la navegación Ir a la búsqueda

Introducción

Hosting Virtual refírese a posibilidade de facer funcionar máis dun sitio web (por exemplo www.paxina1.com e www.paxina2.com) nunha sola máquina. Os sitios web virtuales poden estar:

  • basados en enderezos IP: cada sitio web ten un enderezo IP diferente
  • basados en nomes diferentes: cunha sola dirección IP están funcionando sitios web con diferentes nomes de dominio

Virtual host baseados en nome

Esta sería unha configuración posible, que é a que atopamos como sitio por defecto:

/etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
#ServerName www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Tarefa

Configurar dous virtual host as webs www.probadevh1.com e www.probadevh2.com

Solución

Cada sitio web terá nombres distintos, pero compartirán o mesmo enderezo IP e o mesmo porto (80).

Creación dos ficheiros de configuración

Crearemos os ficheiros de configuración para os dous virtual host partindo do ficheiro do sitio por defecto:

cd /etc/apache2/sites-available
cp 000-default.conf probadevh1.conf
cp 000-default.conf probadevh2.conf

Modificación dos ficheiros de configuración

Modificamos nos ficheros de configuración as seguintes directivas:

DocumentRoot
ServerName
ErrorLog
CustomLog

O exemplo resultante de probadevh1.conf podería ser este:

<VirtualHost *:80>
ServerName www.probadevh1.com
ServerAdmin joselv@edu.xunta
DocumentRoot /var/www/html/probadevh1
ErrorLog ${APACHE_LOG_DIR}/error_probadevh1.log
CustomLog ${APACHE_LOG_DIR}/access_probadevh1.log combined
</VirtualHost>

Activación da configuración

a2ensite probadevh1
a2ensite probadevh2

Creación dos DocumentRoot

mkdir /var/www/probadevh1
mkdir /var/www/probadevh2

Cambio de propietarios das rutas

Damos propietarios axeitados as rutas:

# chown -R www-data:www-data /var/www/probadevh1
# chown -R www-data:www-data /var/www/probadevh2

Creación index.html

sudo pico /var/www/probadevh1/index.html sudo pico /var/www/probadevh2/index.html

O contido podemos poñer calquera de proba, pero que sexa diferente para comprobar que accedemos correctamente a cada virtualhost.

Comprobamos o funcionamento

No navegador, accedemos a:

www.probadevh1.com
www.probadevh2.com

Os contidos son os que corresponden a cada ficheiro index.html

Troubleshooting

Para o funcionamento dos virtual host é necesario que esté instalado e configurado un servidor DNS. Outra alternativa é configurar manualmente a resolución modificando o ficheiro:

/etc/hosts

Virtual host baseados en ip

Sería similar ó indicado para virtual host baseados en nome, pero o utilizar ips non será necesario preocuparnos pola resolución DNS.

Un posible exemplo:

<VirtualHost 172.10.20.30:80>
ServerAdmin webmaster@www.example1.com
DocumentRoot "/www/vhosts/example1"
ServerName www.example1.com
ErrorLog "/www/logs/example1/error_log"
CustomLog "/www/logs/example1/access_log" combined
</VirtualHost>

Para máis información:

Virtual host basados en ip e porto

Un exemplo sería:

Listen 80
Listen 8080

<VirtualHost 172.20.30.40:80>
    ServerName www.exemplo1.com
    DocumentRoot "/www/dominio-80"
</VirtualHost>

<VirtualHost 172.20.30.40:8080>
    ServerName www.examplo2.com
    DocumentRoot "/www/dominio-8080"
</VirtualHost>

Referencias

Créditos