Cómo configurar un host virtual Nginx en FreeBSD
Un Anfitrión Virtual es un término que se refiere a alojar y ejecutar múltiples sitios web como ‘sitio1.co’, ‘sitio2.co’, y ‘sitio3.co’ en un único nodo servidor. Por cierto, el término ‘Anfitrión Virtual’ es sólo para el Apache, y el Nginx tiene el término ‘Bloques de Servidor’ que equivale al ‘Anfitrión Virtual’ en Apache. Los ‘Bloques de Servidor’ de Nginx utilizan la opción ‘server_name’ y la opción ‘listen’ para enlazarse a sockets TCP.
En este tutorial, te mostraremos cómo configurar los ‘Bloques de Servidor’ Nginx en el entorno FEMP Stack. Definiremos el directorio de configuración del host virtual Nginx, crearemos un nuevo host virtual Nginx básico y, a continuación, crearemos el host virtual Nginx con SSL activado en él.
Requisitos previos:
Para esta guía, necesitarás la Pila FEMP instalada en el sistema FreeBSD 12.0. O puedes consultar el siguiente enlace para instalar la pila FEMP en FreeBSD 12.0.
Cómo instalar FEMP Stack en FreeBSD 12.0
Qué vamos a hacer
- Inicializar el directorio de hosts virtuales Nginx
- Crear un host virtual Nginx básico
- Crear un host virtual Nginx con SSL activado
Paso 1 – Inicializar el directorio del host virtual Nginx
En primer lugar, vamos a inicializar el directorio del host virtual que se utilizará para almacenar las configuraciones de cada dominio del servidor.
Ve al directorio ‘/usr/local/etc/nginx’ y crea un nuevo directorio llamado ‘vhost’.
cd /usr/local/etc/nginx mkdir -p vhost/
Ahora edita la configuración por defecto de nginx ‘nginx.conf’ utilizando el editor vim.
vim nginx.conf
Pega la configuración de abajo en el bloque ‘http { … }’.
http { ... include vhost/*.conf; ... }
Guarda y cierra.
Ahora prueba la configuración de nginx y asegúrate de que no hay ningún error.
nginx -t
Y ya estamos listos para añadir un nuevo host virtual para nuestro nombre de dominio a la Pila FEMP en FreeBSD 12.0.
Paso 2 – Crear un host virtual Nginx básico
En este paso, vamos a crear una nueva configuración básica de host virtual Nginx para un dominio llamado ‘site1.hakase-labs.io’ con el directorio raíz web ubicado en el directorio ‘/usr/local/www/site1’.
Ve al directorio del host virtual ‘/usr/local/etc/nginx/vhost/’ y crea un nuevo archivo de configuración ‘site1.hakase-labs.conf’ utilizando el editor vim.
cd /usr/local/etc/nginx/vhost/ vim site1.hakase-labs.conf
Cambia los detalles del nombre de dominio y la raíz del documento por los tuyos y pégalos en él.
server { listen 80; server_name site1.hakase-labs.io; error_log /var/log/nginx/site1-error.log; access_log /var/log/nginx/site1-access.log; root /usr/local/www/site1; index index.php index.html index.htm; location / { try_files $uri $uri/ =404; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/local/www/site1; } location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ { access_log off; expires max; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include fastcgi_params; } }
Guarda y cierra.
A continuación, tenemos que crear el directorio raíz de documentos para el nombre de dominio ‘site1.hakase-labs.io’ y crear el index.html para la página por defecto.
Ve al directorio ‘/usr/local/www’ y crea un nuevo directorio llamado ‘site1’.
cd /usr/local/www/ mkdir -p site1
Ahora crea el archivo index.html en el directorio ‘site1’ utilizando el editor vim.
vim site1/index.html
Pega el sencillo script HTML que aparece a continuación.
<h1>site1.hakase-labs.io</h1>
Guárdalo y ciérralo.
Además, crea un nuevo archivo PHP llamado ‘info.php’ para probarlo.
vim site1/info.php
Pega el script de abajo.
<h1><center>site1.hakase-labs.io</center></h1>
<?php
phpinfo();
?>
Guárdalo y ciérralo.
Ahora se ha creado la configuración del host virtual, el directorio raíz web y el nombre de dominio del archivo index.html ‘site1.hakase-labs.io’.
A continuación, prueba la configuración de nginx y asegúrate de que no se produce ningún error. A continuación, reinicia el servicio nginx para aplicar los cambios.
nginx -t service nginx restart
Como resultado, se ha aplicado la nueva configuración del host virtual para el «sitio1.hakase-labs.io», y el dominio está en funcionamiento.
Ahora abre tu navegador web y escribe el nombre de dominio «sitio1.hakase-labs.io» en la barra de direcciones.
Y se te mostrará la página predeterminada index.html que acabamos de crear como se indica a continuación.
Además, accede al archivo PHP ‘info.php’.
http://site1.hakase-labs.io/info.php
Y obtendrás información sobre las configuraciones de PHP y PHP-FPM como se indica a continuación.
Como resultado, hemos creado con éxito el host virtual Nginx básico en FEMP Stack con FreeBSD 12.0.
Paso 3 – Crear un host virtual Nginx con SSL activado
En este paso, crearemos una nueva configuración de host virtual Nginx con SSL activado. Crearemos un nuevo host virtual para el nombre de dominio ‘site2.hakase-labs.io’ con y el directorio raíz de documentos ‘/usr/local/www/site2’.
Para habilitar SSL en el servidor web, necesitarás los certificados SSL.
A continuación se muestran nuestros archivos de certificados SSL y copiaremos estos archivos en el directorio ‘/usr/local/etc/ssl’.
cp *.pem /usr/local/etc/ssl/
Ahora ve al directorio del host virtual ‘/usr/local/etc/nginx/vhost/’ y crea otra configuración ‘site2.hakase-labs.conf’ utilizando el editor vim.
cd /usr/local/etc/nginx/vhost/ vim site2.hakase-labs.conf
Cambia el nombre de dominio, la ruta de los certificados SSL y el directorio raíz del documento por los tuyos, y pégalos en él.
server { listen 80; server_name site2.hakase-labs.io; rewrite ^(.*) https://$server_name$1 permanent; } server { listen 443; server_name site2.hakase-labs.io; root /usr/local/www/site2; index index.html index.htm index.php; error_log /var/log/nginx/site2-error.log; access_log /var/log/nginx/site2-access.log; ssl on; ssl_certificate /usr/local/etc/ssl/fullchain.pem; ssl_certificate_key /usr/local/etc/ssl/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384; ssl_prefer_server_ciphers on; location / { try_files $uri $uri/ =404; } location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ { access_log off; expires max; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include fastcgi_params; } }
Guarda y cierra.
A continuación, crearemos el directorio raíz web ‘/usr/local/www/site2/’ y crearemos el archivo index.html en él.
Crea el directorio raíz del documento ‘/usr/local/www/site2/’ y entra en él.
mkdir -p /usr/local/www/site2/ cd /usr/local/www/site2/
Ahora crea la página index.html utilizando el siguiente comando.
vim index.html
Pega el script HTML de abajo.
<h1>site2.hakase-labs.io</h1>
Guárdalo y ciérralo.
Además, crea el archivo PHP ‘info.php’.
vim info.php
Y pega el script PHP de abajo.
<h1><center>site2.hakase-labs.io</center></h1>
<?php
phpinfo();
?>
Guarda y cierra.
Y ya está creada la nueva configuración del host virtual con SSL activado.
A continuación, prueba la configuración de nginx y asegúrate de que no se produce ningún error. A continuación, reinicia el servicio Nginx para aplicar los cambios.
nginx -t service nginx restart
Como resultado, el servicio Nginx estará en funcionamiento y el nuevo host virtual con SSL activado será accesible desde tu navegador web.
Abre tu navegador web y escribe la URL del host virtual ‘site2.hakase-labs.io’ en la barra de direcciones.
Ahora serás redirigido a la conexión segura HTTPS y se te mostrará la página predeterminada index.html que hemos creado.
Además, accede al archivo PHP ‘info.php’.
http://site2.hakase-labs.io/info.php
Y obtendrás información sobre las configuraciones de PHP y PHP-FPM como se indica a continuación.
Como resultado, hemos creado con éxito el host virtual Nginx con SSL activado en el entorno FEMP Stack con FreeBSD 12.0.