Diferencia entre revisiones de «Configuración de Virtual Host en Apache HTTP 2.4»
| (No se muestran 6 ediciones intermedias del mismo usuario) | |||
| Línea 5: | Línea 5: | ||
* basados en nomes diferentes: cunha sola dirección IP están funcionando sitios web con diferentes nomes de dominio | * basados en nomes diferentes: cunha sola dirección IP están funcionando sitios web con diferentes nomes de dominio | ||
| − | = Virtual host | + | = 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 | ||
| + | <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> | ||
| − | = | + | == Tarefa == |
| + | Configurar dous virtual host as webs www.probadevh1.com e www.probadevh2.com | ||
| − | = Virtual host basados en ip | + | == 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
Sumario
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
- 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://httpd.apache.org/docs/2.4/vhosts/examples.html
- https://httpd.apache.org/docs/2.4/vhosts/name-based.html