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.

http://vhost1.hakase-labs.io/

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.

http://vhost2.hakase-labs.io/

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.

Referencia

https://www.freebsd.org/doc/

https://httpd.apache.org/docs/2.4/vhosts/

También te podría gustar...