Cómo configurar un host virtual de Apache en FreeBSD
Anfitrión virtual es un término para alojar y ejecutar varios sitios web, como ‘sitio1.co’, ‘sitio2.co’ y ‘sitio3.co’, en un único nodo servidor. En el servidor web Apache, podemos crear hosts virtuales «basados en nombres» y hosts virtuales «basados en IP».
Los hosts virtuales basados en nombres pueden crear varios sitios web con una única dirección IP en diferentes nombres de dominio. Y con los hosts virtuales basados en IP, podemos asignar a cada sitio web una dirección IP. Y todo ello en un único servidor.
En este tutorial, te mostraremos cómo configurar un host virtual «basado en nombres» en la pila FAMP (FreeBSD, Apache, MySQL/MariaDB y PHP). Te guiaremos en la configuración de un servidor web Apache tanto para protocolo HTTP como HTTPS con SSL activado en FreeBSD 12.0.
Requisitos previos:
Necesitarás la Pila FAMP instalada en tu sistema FreeBSD para esta guía. O puedes el siguiente enlace para instalar la Pila FAMP en FreeBSD 12.0.
Instalar la Pila FAMP en FreeBSD 12.0
Qué vamos a hacer
- Inicializar el directorio de hosts virtuales de Apache
- Crear un host virtual Apache básico
- Crear un host virtual Apache con SSL activado
Paso 1 – Inicializar el directorio de hosts virtuales de Apache
En primer lugar, definiremos el directorio del host virtual para almacenar todas las configuraciones del host virtual.
Ve al directorio de configuración de Apache ‘/usr/local/etc/apache24’ y crea un nuevo directorio llamado ‘vhost’.
cd /usr/local/etc/apache24 mkdir -p vhost
Después, edita el archivo de configuración ‘httpd.conf’ utilizando el editor vim.
vim httpd.conf
Pega la configuración de abajo al final de la línea.
Include etc/apache24/vhost/*.conf
Guarda y cierra.
Ahora todos los archivos de configuración ‘.conf’ dentro del directorio ‘vhost’ serán cargados por el servidor web Apache, y estamos listos para añadir un nuevo host virtual a la Pila FAMP.
Paso 2 – Crear un host virtual Apache básico
En este paso, vamos a crear un host virtual Apache básico para un nombre de dominio ‘vhost1.hakase-labs.io’. El host virtual tendrá un directorio raíz de documentos ‘/usr/local/www/vhost1’ y tendrá archivos de registro específicos para los registros de acceso y de errores.
Antes de crear la configuración del host virtual Apache, vamos a crear el directorio raíz web y a crear el archivo index.html.
Crea un nuevo directorio raíz de documentos para el dominio «vhost1.hakase-labs.io» y entra en él.
mkdir -p /usr/local/www/vhost1 cd /usr/local/www/vhost1
Después, crea el archivo index.html utilizando el editor vim.
vim index.html
Pega el script HTML que aparece a continuación.
<h1>VHOST1.HAKASE-LABS.IO</h1>
Guárdalo y ciérralo.
A continuación, ve al directorio ‘/usr/local/etc/apache24/vhost/’ y crea el archivo del host virtual llamado ‘vhost1.hakase-labs.conf’.
cd /usr/local/etc/apache24/vhost/ vim vhost1.hakase-labs.conf
Pega la siguiente configuración.
<VirtualHost *:80> ServerAdmin [email protected]
ServerName vhost1.hakase-labs.io
ServerAlias www.vhost1.hakase-labs.io
DocumentRoot «/usr/local/www/vhost1»
ErrorLog «/var/log/vhost1.hakase-labs.io-error_log»
CustomLog «/var/log/vhost1.hakase-labs.io-access_log» common
<Directory /usr/local/www/vhost1>
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
Guarda y sal.
Ahora prueba la configuración de Apache y asegúrate de que no hay ningún error, luego reinicia el servicio Apache.
apachectl configtest service apache24 restart
Y obtendrás el resultado que se muestra a continuación.
Como resultado, se ha creado y cargado el host virtual Apache para el nombre de dominio «vhost1.hakase-labs.io». Y ahora puedes acceder al nombre de dominio desde tu navegador web.
Abre tu navegador y escribe el nombre de dominio «vhost1.hakase-labs.io» en la barra de direcciones.
Y obtendrás la página de índice como la que se muestra a continuación.
Como resultado, se ha creado el host virtual Apache básico de FAMP Stack para el nombre de dominio ‘vhost1.hakase-labs.io’. Y para el siguiente paso, vamos a configurar el host virtual Apache con SSL activado.
Paso 3 – Crear un host virtual Apache con SSL activado
En este paso, vamos a configurar el host virtual Apache con SSL activado. Para ello, deberás habilitar ‘mod_ssl’ y ‘mod_rewrite’, generar certificados SSL y crear la configuración SSL básica.
Ahora ve al directorio ‘/usr/local/etc/apache24/’ y edita el archivo ‘httpd.conf’.
cd /usr/local/etc/apache24/ vim httpd.conf
Descomenta las líneas ‘LoadModule’ para ‘mod_ssl’ y ‘mod_rewrite’.
LoadModule ssl_module libexec/apache24/mod_ssl.so LoadModule rewrite_module libexec/apache24/mod_rewrite.so
Guárdalo y ciérralo.
Ahora tenemos que crear una nueva configuración SSL ‘ssl.conf’ en el directorio ‘Includes’.
vim Includes/ssl.conf
Pega la configuración SSL de abajo.
Listen 443
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProxyCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLHonorCipherOrder on
SSLCompression off
SSLProtocol ALL -SSLv2 -SSLv3
SSLProxyProtocol ALL -SSLv2 -SSLv3
SSLOpenSSLConfCmd Curves X25519:secp521r1:secp384r1:prime256v1
Guarda y cierra.
Después, crea un nuevo directorio raíz web ‘/usr/local/www/vhost2’ para el segundo nombre de dominio del host virtual ‘vhost2.hakase-labs.io’ y entra en él.
mkdir -p /usr/local/www/vhost2 cd /usr/local/www/vhost2
Crea el archivo index.html utilizando el editor vim.
vim index.html
Pega el script HTML que aparece a continuación.
<h1>VHOST2.HAKASE-LABS.IO</h1>
Guárdalo y ciérralo.
A continuación, ve al directorio ‘/usr/local/etc/apache24/vhost/’ y crea una nueva configuración de host virtual ‘vhost2.hakase-labs.conf’.
cd /usr/local/etc/apache24/vhost/ vim vhost2.hakase-labs.conf
Cambia la ruta SSL por tus propios certificados y pégala.
# Automatic Redirect <VirtualHost *:80> ServerName vhost2.hakase-labs.io DocumentRoot "/usr/local/www/vhost2" Redirect permanent / https://vhost2.hakase-labs.io </VirtualHost>
# HTTPS Config
<VirtualHost *:443>
SSLEngine On
SSLCertificateFile /usr/local/etc/ssl/fullchain.pem
SSLCertificateKeyFile /usr/local/etc/ssl/privkey.pem
ServerAdmin [email protected]
DocumentRoot «/usr/local/www/vhost2»
ServerName vhost2.hakase-labs.io
ServerAlias www.vhost2.hakase-labs.io
ErrorLog «/var/log/vhost2.hakase-labs.io-error_log»
CustomLog «/var/log/vhost2.hakase-labs.io-access_log» common
<Directory /usr/local/www/vhost2>
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
Guarda y sal.
Ahora prueba la configuración de Apache y asegúrate de que no hay ningún error, luego reinicia el servicio Apache.
apachectl configtest service apache24 restart
El nuevo host virtual Apache con SSL ha sido cargado por el servicio Apache.
Ahora abre tu navegador web y escribe el nombre de dominio «vhost2.hakase-labs.io» en la barra de direcciones.
Y serás redirigido a una conexión segura HTTPS y se te mostrará la página índice como se indica a continuación.
Finalmente, la nueva configuración del host virtual Apache con SSL se ha completado con éxito.