Configurar Nginx como balanceador de carga

Probado en Ubuntu server 24.04 Requisitos previos: Paso 1: Borrar configuración de Nginx por defecto. El archivo /etc/nginx/sites-available/default tiene la configuración del servidor web que viene por defecto instalado en Nginx, que solo muestra una página de bienvenida en el puerto 80. Ese archivo lo podemos eliminar, así como su enlace simbólico (/etc/nginx/sites-enabled/default) que se […]

Configurar Nginx como balanceador de carga Leer más »

Configuración de Nginx como Proxy Inverso para aplicaciones Spring Boot con Let’s Encrypt SSL en Ubuntu Server 24.04

Introducción En este tutorial, te mostraré cómo configurar un servidor Ubuntu Server 24.04 con Nginx para actuar como proxy inverso para dos aplicaciones Spring Boot. Además, te guiaré en la instalación y configuración de certificados SSL con Let’s Encrypt para los dominios controlgastospersonales.app y su subdominio api.controlgastospersonales.app. Requisitos Previos Paso 1: Instalar Nginx Si no

Configuración de Nginx como Proxy Inverso para aplicaciones Spring Boot con Let’s Encrypt SSL en Ubuntu Server 24.04 Leer más »

Java Lambdas: Función Callable

Breve explicación La interfaz Callable<V> es similar a Runnable, pero a diferencia de Runnable, Callable puede retornar un valor y lanzar excepciones. Su método funcional es call(), que retorna un resultado de tipo V. Ejemplo 1: Versión completa del cuerpo de la función Lambda Ejemplo 2: Reducción de la expresión Lambda

Java Lambdas: Función Callable Leer más »

Java Lambdas: Función Runnable

Breve explicación La interfaz Runnable es una interfaz funcional en Java que no acepta argumentos y no retorna ningún valor. Se utiliza principalmente para definir tareas que se ejecutan en un hilo separado. El método funcional de Runnable es run(). Ejemplo 1: Versión completa del cuerpo de la función Lambda Ejemplo 2: Reducción de la

Java Lambdas: Función Runnable Leer más »

Java Lambdas: Función UnaryOperator

Breve explicación La función UnaryOperator<T> es una interfaz funcional en Java que acepta un solo argumento de tipo T y devuelve un resultado del mismo tipo T. Es una especialización de Function<T, T>. El método funcional de UnaryOperator es apply(T t). Ejemplo 1: Versión completa del cuerpo de la función Lambda Ejemplo 2: Reducción de

Java Lambdas: Función UnaryOperator Leer más »

Java Lambdas: Función Predicate

Breve explicación La función Predicate<T> es una interfaz funcional en Java que acepta un argumento de tipo T y devuelve un valor booleano (true o false). Se utiliza para evaluar una condición o realizar una prueba sobre el valor dado. El método funcional de Predicate es test(T t). Ejemplo 1: Versión completa del cuerpo de

Java Lambdas: Función Predicate Leer más »

Bloqueando bots y solicitudes no deseadas en Tomcat con Fail2Ban

Introducción En servidores web, es común recibir miles de solicitudes de distintos orígenes, muchas veces provenientes de bots o actores malintencionados que pueden sobrecargar el sistema o, peor aún, intentar explotar vulnerabilidades. Recientemente, noté un comportamiento inusual en los logs de acceso de mi aplicación web desplegada en un servidor Tomcat. A continuación, detallo cómo

Bloqueando bots y solicitudes no deseadas en Tomcat con Fail2Ban Leer más »