Nginx Server Blocks le permite ejecutar más de un sitio web en una sola máquina. Esto es útil porque para cada sitio 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, usar diferentes certificados SSL y mucho más.
En este tutorial, explicaremos cómo configurar bloques de servidor Nginx en CentOS 7.
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 en su sistema CentOS.
- Iniciar sesión como root 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. Podemos establecer la raíz del documento en cualquier ubicación que desee.
Usaremos la siguiente estructura de directorios:
/var/www/
├── example.com
│ └── public_html
├── example2.com
│ └── public_html
├── example3.com
│ └── public_html
Básicamente estamos creando un directorio separado para cada dominio que queremos alojar en nuestro servidor dentro de /var/www
directorio. Dentro de este directorio, crearemos un public_html
directorio que será el directorio raíz del documento del dominio y almacenará los archivos del sitio web del dominio.
Comencemos creando el directorio raíz para nuestro dominio example.com
:
sudo mkdir -p /var/www/example.com/public_html
Con fines de prueba, crearemos un index.html
archivo dentro del directorio raíz del documento del dominio.
Abra su editor de texto y cree la demostración index.html
archivo:
sudo nano /var/www/example.com/public_html/index.html
Copie y pegue el siguiente código en el archivo:
/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>
En este ejemplo, estamos ejecutando los comandos como usuario sudo y los archivos y directorios recién creados son propiedad del usuario root.
Para evitar problemas de permisos, cambie la propiedad del directorio raíz del documento de dominio al usuario de Nginx (nginx
):
sudo chown -R nginx: /var/www/example.com
Crear un bloque de servidor #
Los archivos de configuración del bloque del servidor Nginx deben terminar con .conf
y se almacenan en /etc/nginx/conf.d
directorio.
Abra el editor de su elección y cree un archivo de configuración de bloque de servidor para example.com
.
sudo nano /etc/nginx/conf.d/example.com.conf
Puede nombrar el archivo de configuración como desee. Por lo general, es mejor usar el nombre de dominio. Copie y pegue el siguiente código en el archivo:
/etc/nginx/conf.d/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;
}
}
Guarde el archivo y pruebe la configuración de Nginx para obtener 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: