Nginx Server Blocks le permite ejecutar más de un sitio web en una sola máquina. Con Server Blocks, puede especificar la raíz del documento del sitio (el directorio que contiene los archivos del sitio web), crear una política de seguridad separada para cada sitio, usar diferentes certificados SSL para cada sitio y mucho más.
En este tutorial, le mostraremos cómo configurar bloques de servidor Nginx en Debian 9.
Requisitos previos #
Asegúrese de cumplir con los siguientes requisitos previos antes de continuar con este tutorial:
- Nombre de dominio que apunta a la IP de su servidor público. Usaremos
example.com
. - Nginx instalado.
- Ha iniciado sesión como raíz o usuario con privilegios sudo.
Server Blocks
siendo referido como un Virtual host
.Un host virtual es un término de Apache. Crear la estructura de directorio #
La raíz del documento es el directorio donde se almacenan y sirven los archivos del sitio web para un nombre de dominio en respuesta a las solicitudes. La raíz del documento puede ser cualquier directorio en su servidor Debian.
Usaremos la siguiente estructura de directorios:
/var/www/
├── domain1.com
│ └── public_html
├── domain2.com
│ └── public_html
├── domain3.com
│ └── public_html
Crearemos un directorio separado para cada dominio que se alojará en el servidor dentro de /var/www
directorio. Dentro de cada uno de estos directorios, crearemos un public_html
directorio que almacenará los archivos del sitio web del dominio.
Comience creando el directorio raíz para el dominio example.com
:
sudo mkdir -p /var/www/example.com/public_html
A continuación, cree un index.html
archivo dentro del directorio raíz del documento del dominio.
sudo nano /var/www/example.com/public_html/index.html
Abra el archivo y pegue las siguientes líneas:
/var/www/example.com/public_html/index.html<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Welcome to example.com</title>
</head>
<body>
<h1>Success! example.com home page!</h1>
</body>
</html>
Para evitar problemas de permisos, cambie la propiedad del directorio raíz del documento de dominio al usuario de Nginx (www-data
):
sudo chown -R www-data: /var/www/example.com
Crear un bloque de servidor #
De forma predeterminada en los sistemas Debian, los archivos de configuración de bloques del servidor Nginx se almacenan en /etc/nginx/sites-available
directorio, que se habilitan a través de enlaces simbólicos al /etc/nginx/sites-enabled/
directorio.
Abra el editor de su elección y cree el siguiente archivo de bloque del servidor:
sudo nano /etc/nginx/sites-available/example.com.conf
/etc/nginx/sites-available/example.com.confserver {
listen 80;
listen [::]:80;
root /var/www/example.com/public_html;
index index.html;
server_name example.com www.example.com;
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
location / {
try_files $uri $uri/ =404;
}
}
Puede nombrar el archivo de configuración como desee, pero generalmente es mejor usar el nombre de dominio.
Habilite el nuevo archivo de bloqueo del servidor creando un enlace simbólico desde el archivo al sites-enabled
directorio:
sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
Pruebe la configuración de Nginx para ver la sintaxis correcta:
sudo nginx -t
Si no hay errores, la salida se verá así:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Reinicie el servicio Nginx para que los cambios surtan efecto:
sudo systemctl restart nginx
Finalmente, para verificar que el bloque del servidor funciona como se esperaba, abra http://example.com
en el navegador de su elección y verá algo como esto: