Introducción
Nginx Server Blocks le permite ejecutar más de un sitio web en una sola computadora. 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.
Para obtener una guía sobre cómo configurar varios bloques de servidor con Nginx en Debian 10, lea este tutorial.
En este artículo, proporcionaremos instrucciones detalladas sobre cómo configurar un bloque de servidor con Nginx en Debian 10 Buster.
Prerrequisitos
Asegúrese de cumplir los siguientes requisitos previos antes de continuar con el tutorial:
- Tienes un nombre de dominio que apunta a la IP de tu servidor público. Usaremos
example.com
. - Ha iniciado sesión como usuario con privilegios de sudo.
Si su intención es instalar Nginx en un servidor remoto, continúe leyendo; de lo contrario, si desea instalar Nginx en su computadora local, omita el primer párrafo "Conectarse 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 VOSTRO_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
Ahora está conectado a su servidor, está listo para comenzar a instalar Nginx.
Instalar Nginx
El paquete Nginx se incluye en los repositorios predeterminados de Debian 10.
sudo apt update
sudo apt install nginx
El servicio Nginx se iniciará automáticamente al final del proceso de instalación. Para verificar el estado, escriba:
sudo systemctl status nginx
La salida se verá así:
nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2019-11-18 22:54:20 CET; 9s ago
Configurar el cortafuegos
Suponiendo que está utilizando UFW en Debian para administrar el firewall, debe abrir los 80
) y HTTPS ( 443
). Puede hacer esto habilitando el perfil 'Nginx Full' que incluye reglas para ambos puertos:
sudo ufw allow 'Nginx Full'
Para verificar el tipo de estado de Nginx:
sudo ufw status
La salida se verá así:
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
Nginx Full ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
Nginx Full (v6) ALLOW Anywhere (v6)
Cree la estructura de directorio para el bloque de servidor
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. Puede establecer la raíz del documento en cualquier ubicación que desee.
Usaremos la siguiente estructura de directorios:
/var/www/├── domain1.com
│ └── public_html
├── domain2.com
│ └── public_html
├── domain3.com
│ └── public_html
Básicamente, crearemos un directorio separado para cada dominio que queramos alojar en nuestro servidor dentro del /var/www
. Dentro de cada uno de estos directorios, crearemos un public_html
que almacenará los archivos del sitio web del dominio.
Creemos 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
dentro del directorio raíz del documento del dominio.
Abra el archivo /cree el archivo con su editor, en este tutorial usaremos nano:
sudo nano /var/www/example.com/public_html/index.html
Pegue las siguientes líneas de código:
<!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, ejecutamos los comandos como el usuario sudo y los archivos y directorios recién creados son propiedad del usuario root.
Para evitar problemas de autorización, cambie la propiedad del directorio raíz del documento del dominio al usuario Nginx ( www-data
) con el comando chown:
sudo chown -R www-data: /var/www/example.com
Crea un bloque de servidor
De forma predeterminada en los sistemas Debian, los archivos de configuración del bloque del servidor Nginx se almacenan en el /etc/nginx/sites-available
, que se habilitan a través de enlaces simbólicos al /etc/nginx/sites-enabled/
.
Abra su editor y cree el siguiente archivo de bloqueo del servidor:
sudo nano /etc/nginx/sites-available/example.com
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;
}
}
Puede nombrar el archivo de configuración como desee, pero generalmente es mejor usar el nombre de dominio.
Para habilitar el nuevo archivo de bloqueo del servidor, cree un enlace simbólico desde el archivo al sites-enabled
para sitios, que Nginx lee al inicio:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
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 su http://example.com
en el navegador de su elección y verá el mensaje de ejemplo que creamos en el archivo index.html de nuestro Bloque del servidor Nginx.
Conclusión
Aprendió a crear una configuración de bloque de servidor Nginx para alojar un dominio en un solo servidor Debian. Puede repetir los pasos anteriores y crear bloques de servidor adicionales para todos sus dominios.
Si desea proteger su sitio web con un certificado SSL LetsEncrypt gratuito, puede consultar la siguiente guía: Cómo instalar Let's Encrypt para Nginx en Debian 10 Buster.