Introducción
Un bloque de servidor es una directiva de Nginx que define la configuración de un dominio específico, lo que le permite ejecutar más de un sitio web en un solo servidor. Para cada sitio web, puede establecer 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.
Este artículo describe cómo configurar bloques de servidor Nginx en CentOS 8.
Prerrequisitos
Asegúrese de cumplir con los siguientes requisitos antes de continuar con este tutorial:
- Nombre de dominio que apunta a la IP de su servidor público.
- Nginx instalado en su sistema CentOS.
- Ha iniciado sesión como root o usuario con privilegios de sudo.
En algunos documentos, el término Server Blocks
se denomina Virtual host
. Un host virtual es un término de Apache.
Si desea instalar Nginx Server Blocks en un servidor remoto, continúe leyendo; de lo contrario, omita el primer párrafo "Conectando al servidor" y lea el siguiente.
Conexión al servidor
Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:
ssh root@IP_DEL_SERVER
A continuación, deberá ingresar la contraseña del usuario root.
Si no está utilizando el usuario root, puede iniciar sesión con otro nombre de usuario utilizando el mismo comando, luego cambie root a su nombre de usuario:
ssh nome_utente@IP_DEL_SERVER
Luego se le pedirá que ingrese su contraseña de usuario.
El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Crea la estructura del directorio
La raíz del documento es el directorio donde se almacenan los archivos del sitio web para un nombre de dominio y se ofrecen en respuesta a las solicitudes. La raíz del documento se puede establecer en cualquier ubicación deseada.
Usaremos la siguiente estructura de directorios:
/var/www/├── example.com
│ └── public_html
├── example2.com
│ └── public_html
├── example3.com
│ └── public_html
Para cada dominio que se alojará en el servidor, crearemos un directorio separado dentro de /var/www
. Dentro del directorio del dominio, crearemos un public_html
que será la raíz del documento del dominio y almacenaremos los archivos del sitio web del dominio.
Comencemos creando el directorio raíz para el dominio example.com
sudo mkdir -p /var/www/example.com/public_html
En este tutorial usamos nano, si lo prefiere puede usar vi instalado por defecto en la mayoría de las distribuciones.
sudo dnf install nano
Para fines de prueba, cree un index.html
en la raíz de los documentos del dominio:
sudo mkdir -p /var/www/example.com/public_html
sudo nano /var/www/example.com/public_html/index.html
Copie y pegue el siguiente código en el archivo:
<!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 autorización, cambie la propiedad raíz del documento de dominio nginx
usuario nginx:
sudo chown -R nginx: /var/www/example.com
Crea un bloque de servidor
De forma predeterminada en CentOS, los archivos de configuración del bloque del servidor Nginx deben terminar con .conf
y se almacenan en el directorio /etc/nginx/conf.d
Abra su editor de texto y cree el archivo de configuración para el dominio:
sudo nano /etc/nginx/conf.d/example.com.conf
El archivo de configuración puede tener el nombre que desee, pero generalmente es mejor usar el nombre de dominio.
Copie y pegue el siguiente código en el archivo:
server {
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 verifique la configuración de Nginx para ver si hay errores de sintaxis:
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 si el bloque del servidor está funcionando como se esperaba, abra su navegador y navegue hasta su dirección http://example.com
Debería ver la página html creada anteriormente.
Conclusión
Le mostramos cómo crear bloques de servidor Nginx y alojar múltiples dominios en un solo servidor CentOS. Puede repetir los pasos descritos anteriormente y crear bloques de servidor adicionales para todos sus dominios.
Si desea proteger su sitio web con un certificado SSL, puede generar e instalar un certificado SSL de Letsencrypt gratuito.