En este momento estás viendo Instalación de Nginx y toda la pila LEMP en Debian 11 «Bullseye» 2

Instalación de Nginx y toda la pila LEMP en Debian 11 «Bullseye» 2

Instalación de Nginx y toda la pila LEMP en Debian 11 «Bullseye»

Instalación de Nginx y MariaDB

Tras la instalación y configuración de ssh y UFW, que hemos visto en un post anterior, vamos a instalar un servidor web y un servidor de bases de datos.

En este segundo post, instalaremos Nginx (su pronunciación correcta es «Engine-X»), MariaDB y PHP en nuestro servidor Debian 11 «Bullseye». Puedes ver como instalamos y configuramos ssh y el cortafuegos UFW en este enlace.

Sumario

  • Consideraciones previas
  • Instalación de Nginx
  • Habilitamos el cortafuegos
  • Instalación de MariaDB
    • Conectamos con el servidor de base de datos
    • Configuración de MariaDB
    • Acceso remoto al servicio

Consideraciones previas

Si has ulizado el servidor Apache, verás que no son muchas las diferencias en su instalación y configuración. Nginx ofrece recursos de equilibrio de carga, proxy inverso y streaming, además de gestionar miles de conexiones simultáneas. El resultado de sus aportes es una mayor velocidad y escalabilidad. Poco a poco Nginx le va comiendo terreno a Apache, con una cuota del 33 % de servidores web, ha superado a Apache instalado en un 31,4 % de servidores, según la comparación hecha en la web W3techs.com.

Nginx ​ es un servidor web/proxy inverso ligero de alto rendimiento y un proxy para protocolos de correo electrónico.​​ Es software libre y de código abierto, licenciado bajo la Licencia BSD simplificada. También existe una versión comercial distribuida bajo el nombre de Nginx Plus.

Instalación de Nginx

Nos conectamos al servidor por ssh desde un cliente Ubuntu 20.04.

ssh usuario@ip_servidor

Como siempre empezamos actualizando la lista de paquetes de los repositorios

sudo apt-get update

E iniciamos la instalación con

sudo apt-get install nginx

Nos solicitará confirmación. Le decimos que si «Y» y continuará con la instalación.

Habilitamos el cortafuegos

Una vez instalado, es necesario tener habilitado el cortafuegos, como vimos en el anterior post, para permitir las conexiones con el servidor.

Nginx registra algunos perfiles de aplicaciones UFW diferentes al realizar la instalación. Para verificar qué perfiles UFW tenemos disponibles, ejecutamos lo siguiente

sudo ufw app list

Y deberemos ver, entre otros, la siguiente salida

Output
Available applications:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH

Como vemos tenemos varias opciones:

Nginx FullHabilita las conexiones en los puertos 443 (https) y 80 (http)
Nginx HTTPHabilita las conexiones en el puerto 80 (http)
Nginx HTTPSHabilita las conexiones en el puerto 443 (https)

Vamos a habilitar los dos puertos con el comando

sudo ufw allow 'Nginx Full'

También podemos abrir los puertos con los comandos

sudo ufw allow http ó sudo ufw allow 80
sudo ufw allow https ó sudo ufw allow 443

Y comprobamos el estado

sudo ufw status o sudo ufw status verbose

Que nos mostrará los puertos abiertos, el protocolo de las conexiones, la acción establecida y desde donde se permiten estas.

Y ya podemos comprobar que Nginx funciona con un navegador. Introducimos la «ip pública» de nuestro servidor y nos mostrará la página web predeterminada de Nginx.

http://dominio_del_servidor_o_IP

Si ha funcionado es que tenemos correctamente instalado Nginx y configurado el cortafuegos.

Instalación de MariaDB

Para ir completando la pila LEMP, el siguiente paso será la instalación de MariaDB. Lo haremos desde los repositorios de Debian. Actualizamos la lista de paquetes

sudo apt-get update

E instalamos el paquete mariadb-server

sudo apt-get install -y mariadb-server

Este comando descargará y instalará MariaDB Server y todas las dependencias requeridas. Una vez termine tendremos el servicio mariadb o mariadb.service en ejecución. Para comprobar el estado del servicio ejecutamos

systemctl status mariadb

Si vemos active (running) es que todo ha ido bien y tenemos el servicio disponible. Salimos con «q»

Comprobamos las versiones y servicios de MariaDB

mysql -V

Conectamos con el servidor de base de datos

Inicialmente el servicio MariaDB sólo incluye el usuario administrador root con acceso mediante sockets de Unix, es decir, sólo podremos conectar con un cliente de consola si somos el usuario root de Debian 11, como vemos en la siguiente captura.

mysql

O si utilizamos sudo con cualquier otro usuario

sudo mysql

Para acceder con el usuario root con contraseña, tenemos que crearla. Cambia ‘contraseña’ por la que consideres.

> alter user root@localhost identified by 'contraseña';

Primero salimos de mariadb con exit y nos volvemos a loguear con root. Para ello tendremos que introducir.

mysql -u root -p

Para crear otro usuario con acceso remoto con contraseña

> grant all privileges on *.* to javier identified by 'contraseña' with grant option;

Y actualizamos

> flush privileges;

Cerramos la conexión con

> exit

La próxima vez que queramos acceder al servidor lo podremos hacer con root

mysql -u root -p

O con el usuario que hemos creado

mysql -u javier -p

En ambos casos con contraseña

Configuración de MariaDB

Los ficheros de configuración los encontramos en la ruta /etc/mysql/. El fichero principal es my.cnf que contendrá otros subdirectorios como conf.d/ y mariadb.conf.d/

Acceso remoto al servicio

Para activar el acceso remoto al servicio mariadb tenemos que editar el fichero 50-server.cnf que lo encontraremos en la siguiente ruta /etc/mysql/mariadb.conf.d/50-server.cnf

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Buscamos la directiva bind-addres y la comentamos añadiendo «#» al comienzo de la linea

Guardamos los cambios y reiniciamos el servicio

sudo systemctl restart mariadb

Ya solo nos queda abrir el puerto para que sea posible la conexión

sudo ufw allow mysql

Con estos pasos ya tenemos el servidor operativo y accesible en remoto, para los usuarios root y javier, lógicamente, cada uno con su contraseña.

Con usuario javier

Y con root

En el próximo post continuaremos instalando PHP, configurando los bloques de servidor (hosts virtuales) y probando las conexiones con la base de datos.

Si tienes algún comentario que hacer, al pie del post tienes un formulario para hacerlo.

Y si quieres contactar conmigo por cualquier otro asunto relacionado con el sitio, o te quieres suscribir para recibir un correo-e una vez al mes con las nuevas publicaciones, en la página de contacto tienes otro formulario.

Esta entrada tiene 2 comentarios

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.