Cómo configurar hosts virtuales Apache en Ubuntu 16.04
El host virtual Apache ayuda a ejecutar múltiples sitios web en el mismo servidor. Hay dos tipos de configuración de host virtual que apache admite
Hosts virtuales basados en IP
Host virtuales basados en nombre
La configuración de host virtual basada en IP se usa para alojar varios sitios web en diferentes direcciones IP en el mismo servidor físico. Esto no se usa comúnmente al comparar con el host virtual basado en el nombre.
La configuración de host virtual basada en el nombre es la configuración comúnmente utilizada para servir a varios sitios web desde el mismo servidor físico. En esta configuración, cuando el servidor web Apache recibe una solicitud, buscará la configuración del archivo de host virtual y entregará el contenido desde el directorio configurado.
Este proceso no mostrará al usuario final que el mismo servidor es responsable del servicio de otros sitios web. No hay límite en la cantidad de sitios web que puede alojar en su servidor utilizando la configuración de host virtual en la medida en que su servidor pueda soportar la carga.
Asi pues, guiaremos a través de cómo configurar los hosts virtuales de Apache en Ubuntu 16.04.
Requisitos previos
Prepárese con las siguientes cosas antes de comenzar a configurar el archivo de host virtual en Ubuntu 16.04
- Una máquina con Ubuntu 16.04 instalado - Una cuenta de usuario con privilegios sudo - Putty para conectarse al servidor
Nota: A lo largo de este artículo, vamos a referir nombres de dominio como “klvst3r.com” y “siop.com”. Reemplace estos ejemplos de nombres de dominio con su nombre de dominio real donde sea necesario.
Configura Hosts Virtuales Apache en Ubuntu 16.04
Aca explicamos todos los pasos de la configuración del host virtual y las pruebas para una configuración exitosa. Los pasos que se cubren ac se enumeran a continuación.
Actualizar repositorios del sistema
Instalando Apache en ubuntu
Crear directorio para sitios web
Crear páginas de prueba para cada sitio web
Crear archivo de hosts virtuales
Habilitar los nuevos archivos de host virtual
Prueba de los archivos de host virtual
1. Actualice los repositorios del sistema
Antes de comenzar con cualquier instalación o configuración, asegúrese de que los repositorios del sistema estén actualizados. Ejecute el siguiente comando en la terminal para actualizar el sistema
sudo apt-get update
2. Instalando Apache en Ubuntu
Si ya ha instalado apache en el servidor, avance al siguiente paso. De lo contrario, continúe con el siguiente comando para instalar Apache en el servidor.
sudo apt-get install apache2
El estado de Apache se puede verificar ejecutando cualquiera de los siguientes comandos
sudo service apache2 status
or
sudo systemctl status apache2
Si apache se está ejecutando en su servidor, puede seguir adelante con los siguientes pasos detallados a continuación.
3. Crear directorio para sitios web
Necesitamos crear un directorio separado para cada nombre de dominio para almacenar los archivos del sitio web. Por defecto, la raíz del documento será /var/www/html. Vamos a crear directorios separados para los nombres de dominio klvst3r.com y siop.com en el directorio www.
es decir, la estructura del directorio se verá como a continuación.
/var/www/html/dev/klvst3r.com y /var/www/html/dev/siop.com
Para una mejor estructura de directorios y comodidad, alojaremos nuestros archivos de sitio web en la carpeta public que se crea dentro de cada directorio de dominio.
Simplemente use el siguiente comando para cambiar su directorio actual a /var/www/html/dev/
cd /var/www/html/dev
Confirme el directorio actual emitiendo el siguiente comando
pwd
cambie al directorio actual
Simplemente suelte los siguientes comandos en la terminal para crear directorios para sitios web klvst3r.com y siop.com
sudo mkdir -p klvst3r.com/public
sudo mkdir -p siop.com/public
Utilice el siguiente comando para enumerar los contenidos del directorio actual
ls -lrt
4. Crea páginas de prueba para el sitio web
Crearemos páginas de prueba para estas dos URL de ejemplo en el directorio. Esto se usará para probar nuestro archivo de host virtual después de la configuración.
Colocaremos páginas de índice en ambas carpetas public del dominio. Este es un archivo de prueba para nuestra demostración, si necesita usar los archivos de su sitio web, puede cargarlo ahora o más tarde al eliminar este archivo de índice.
cd /var/www/html/dev/klvst3r.com/public
sudo vi index.html
Pegue el siguiente código HTML en el archivo y presione Esc: wq y presione enter para guardar y regresar a la ventana de comandos
<html> <body> <h1> ¡Hola! El host virtual klvst3r.com está funcionando bien! </ H1> </body> </html>
Ahora, crearemos un índice similar para siop.com. Si solo necesita crear un host virtual para la prueba, simplemente omita este paso.
cd /var/www/html/dev/siop.com/public
sudo vi index.html
Copie y pegue el siguiente código en el editor de texto y salga presionando las teclas Esc: wq y Enter
<html> <body> <h1> ¡Hola! El host virtual siop.com está funcionando bien! </ H1> </body> </html>
Ahora ha creado con éxito los archivos de índice para ambos nombres de dominio. Pasaremos al próximo paso para crear archivos de hosts virtuales para ambos sitios web.
5. Crear archivos de host virtuales
En este paso, vamos a crear archivos de host virtuales para cada uno de nuestros nombres de dominio. Estos archivos de host virtual le indicarán al servidor web que procese los archivos correctos para cada solicitud de sitio web.
Por defecto, habrá un archivo de hosts virtual llamado “000-default.conf” que ayuda a cargar la página predeterminada del servidor web Apache a petición.
Copiaremos esta configuración predeterminada para nuestro sitio web y haremos algunos cambios para trabajar con nuestro dominio klvst3r.com
cd /etc/apache2/sites-available/
sudo cp 000-default.conf klvst3r.com.conf
El comando anterior copiará los contenidos de 000-default.conf en klvst3r.com.conf. Ahora modificaremos klvst3r.com.conf para aceptar la solicitud del nombre de dominio klvst3r.com
sudo vi klvst3r.com.conf
El archivo de ejemplo se verá como a continuación
<VirtualHost *:80> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request’s Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. #ServerName www.example.com ServerAdmin [email protected] ServerName klvst3r.com ServerAlias www.klvst3r.com DocumentRoot /var/www/html/dev/klvst3r/public/ # Available loglevels: trace8, …, trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with “a2disconf”. #Include conf-available/serve-cgi-bin.conf </VirtualHost> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Solo tenemos unas pocas líneas para personalizar. Todas las líneas que comienzan con # son un comentario.
La siguiente línea del archivo de host virtual coincidirá con la solicitud que viene en el puerto 80
<VirtualHost *:80>
Tenemos que modificar el correo electrónico del administrador del servidor en la siguiente línea
ServerAdmin [email protected]
Necesitamos agregar dos directivas más después de esta línea para procesar la solicitud de dominio. El ServerName y ServerAlias que coincidirán con el nombre de dominio para procesar la solicitud.
ServerName es el nombre de dominio. es decir, klvst3r.com
ServerAlias es las condiciones de coincidencia adicionales que deben procesarse. es decir, www.klvst3r.com
Agregue estas líneas al archivo de host virtual
ServerName klvst3r.com ServerAlias www.klvst3r.com
Lo último y más importante que tenemos que cambiar en el archivo de host virtual predeterminado es la raíz del documento. Como se mencionó, la raíz del documento por defecto será /var/www/html/. Sin embargo, hemos creado un directorio diferente para nuestros sitios web que debe mencionarse aquí
DocumentRoot /var/www/html/dev/klvst3r.com/public
Puede guardar y cerrar el archivo de host virtual abierto después de realizar estos cambios.
En resumen, el archivo de host virtual tendrá los siguientes contenidos después de eliminar los comentarios de este
<VirtualHost *:80>
ServerAdmin [email protected] ServerName klvst3r.com ServerAlias www.klvst3r.com DocumentRoot /var/www/html/klvst3r.com/public ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Ha creado con éxito un archivo de hosts virtuales para klvst3r.com. Cree el archivo de host virtual para siop.com simplemente repitiendo los pasos cambiando klvst3r.com a siop.com
6. Habilite los nuevos archivos de host virtual y deshabilite el predeterminado
En este paso, habilitaremos los archivos de host virtual recién creados y desactivaremos el archivo predeterminado creado por apache.
Simplemente ejecute el siguiente comando en el cuadro de masilla para habilitar klvst3r.com.conf y siop.com.conf con la herramienta a2ensite
sudo a2ensite klvst3r.com.conf
sudo a2ensite siop.com.conf
Ahora deshabilite el archivo de host virtual predeterminado
sudo a2dissite 000-default.conf
Debe reiniciar Apache para que estos cambios tengan efecto. Proporcione cualquiera de los siguientes comandos para reiniciar apache
sudo systemctl restart apache2
or
sudo service apache2 restart
Configurar el archivo de hosts virtuales Apache en Ubuntu se ha completado. Ahora podemos continuar con la prueba del archivo de host virtual.
7. Probar la configuración del archivo de hosts virtuales
Si ha utilizado un nombre de dominio real que apunta a su VPS, puede simplemente cargar ese dominio desde el navegador web. De lo contrario, debe editar el archivo de host local para redirigir el nombre de dominio ficticio a la dirección IP de su servidor web.
Para computadoras Mac y Linux, edite el siguiente archivo
/etc/hosts
Para Windows, edite el siguiente archivo de hosts para redireccionar la solicitud de dominio a su servidor IP
C:\Windows\System32\drivers\etc\hosts
Agregue la dirección IP del servidor y el nombre de dominio ficticio en el siguiente formato
127.0.0.1 klsvt3r
127.0.0.1 siop
Guarde el archivo de hosts en su máquina local e intente acceder al nombre de dominio de ejemplo desde cualquier navegador web. Si está recibiendo el siguiente resultado, ha configurado correctamente hosts virtuales en Ubuntu.
Terminando…
Si ha seguido correctamente los pasos anteriores, es posible que haya terminado configurando dos archivos de hosts virtuales en ubuntu para ejecutar dos sitios web en un único servidor.
Puede ejecutar varios sitios web en el mismo servidor agregando más archivos host virtuales a la configuración repitiendo los pasos mencionados.














