Diferencia entre revisiones de «Configuración de Virtual Host en Apache HTTP 2.4»

De MediaWiki
Ir a la navegación Ir a la búsqueda
(Página creada con «= Consideracións previas = = Virtual host basados en nombre = Tener en cuenta DNS y/o archivo /etc/hosts = Virtual host basados en ip = = Virtual host basados en ip y p…»)
 
 
(No se muestran 7 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
−
= Consideracións previas =
+
= 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 basados en nombre =
+
= Virtual host baseados en nome =
−
Tener en cuenta DNS y/o archivo /etc/hosts
+
Esta sería unha configuración posible, que é a que atopamos como sitio por defecto:
 +
/etc/apache2/sites-available/000-default.conf
 +
<pre>
 +
<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>
 +
</pre>
  
−
= Virtual host basados en ip =
+
== Tarefa ==
 +
Configurar dous virtual host as webs www.probadevh1.com e www.probadevh2.com
  
−
= Virtual host basados en ip y puerto =
+
== 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:
 +
<pre>
 +
cd /etc/apache2/sites-available
 +
cp 000-default.conf probadevh1.conf
 +
cp 000-default.conf probadevh2.conf
 +
</pre>
 +
 
 +
=== 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:
 +
<pre>
 +
<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>
 +
</pre>
 +
 
 +
=== 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:
 +
<pre>
 +
<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>
 +
</pre>
 +
 
 +
Para máis información:
 +
* https://httpd.apache.org/docs/2.4/vhosts/ip-based.html
 +
 
 +
= Virtual host basados en ip e porto =
 +
Un exemplo sería:
 +
<pre>
 +
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>
 +
</pre>
  
 
= Referencias =
 
= Referencias =
 
* https://www.digitalocean.com/community/tutorials/how-to-configure-the-apache-web-server-on-an-ubuntu-or-debian-vps#exploring-the-default-virtual-host-file
 
* https://www.digitalocean.com/community/tutorials/how-to-configure-the-apache-web-server-on-an-ubuntu-or-debian-vps#exploring-the-default-virtual-host-file
 
* https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-18-04-quickstart-es
 
* https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-18-04-quickstart-es
 +
* https://httpd.apache.org/docs/2.4/vhosts/examples.html
 +
* https://httpd.apache.org/docs/2.4/vhosts/name-based.html
  
 
= Créditos =
 
= Créditos =

Revisión actual del 01:44 12 nov 2020

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