Escrito el 2023-05-28 por Alberto Ferrer
Etiquetas: gevent gunicorn api python

Si estás utilizando gunicorn y realizas llamadas a API externas en tus vistas, es recomendable utilizar gevent para mejorar el rendimiento de tu aplicación. La clase gevent permite que el worker de gunicorn maneje múltiples solicitudes de forma asíncrona cuando está esperando los datos de una API externa. Algo similar a Nginx o Apache con mod_event.

Para usar gevent como worker en gunicorn, ejecuta el siguiente comando:

gunicorn --worker-class=gevent mysite:app

Supongamos que estás desarrollando un sitio web y necesitas mostrar artículos en una página. Para obtener los datos de los artículos, realizas una llamada a una función que maneja la lista de artículos en formato markdown y otros procesamientos. Sin embargo, debido a que te encuentras en México y el servidor de preparación de la API se encuentra en Canadá, la solicitud puede llevar tiempo en completarse. Como resultado, la página de artículos tarda en cargarse.

Leer artículo...

Escrito el 2023-05-15 por Alberto Ferrer
Etiquetas: linux memoria free procps

El sistema operativo Linux tiene una serie de comandos útiles y poderosos para monitorear y gestionar el uso de los recursos del sistema. Uno de estos comandos es free, que proporciona información sobre el uso de la memoria física y de intercambio (swap) en el sistema. Pero, ¿qué significan realmente los datos que muestra este comando?

Leer artículo...

Escrito el 2023-05-15 por Alberto Ferrer
Etiquetas: drop_caches memoria kernel linux

vm.drop_caches es una función especial en el núcleo de Linux que permite a los administradores liberar la memoria caché del sistema. Aunque pueda parecer un método efectivo para liberar memoria no utilizada y potencialmente mejorar el rendimiento del sistema, su uso requiere una comprensión cuidadosa de cómo Linux gestiona la memoria y el papel de la memoria caché.

¿Cómo funciona vm.drop_caches?

vm.drop_caches permite liberar diferentes tipos de memoria caché escribiendo valores específicos en el archivo /proc/sys/vm/drop_caches:

  • echo 1 > /proc/sys/vm/drop_caches: Libera la caché de páginas.
  • echo 2 > /proc/sys/vm/drop_caches: Libera los inodos y las entradas dentry.
  • echo 3 > /proc/sys/vm/drop_caches: Libera la caché de páginas, los inodos y las entradas dentry.

Leer artículo...

Escrito el 2023-05-15 por Alberto Ferrer
Etiquetas: linux memoria

La gestión automática de memoria es una característica fundamental de Linux y de muchos otros sistemas operativos modernos. A grandes rasgos, Linux utiliza una serie de técnicas y algoritmos para administrar la memoria del sistema de manera eficiente, asegurando que los recursos sean asignados y liberados según sea necesario. A continuación, se detallan algunos aspectos clave de la gestión de memoria en Linux:

Leer artículo...

Escrito el 2023-05-09 por Alberto Ferrer
Etiquetas: linux sso freeipa apache php

En el universo digital en el que nos movemos hoy día, es vital que nos aseguremos de que nuestras aplicaciones web están a salvo y protegidas. ¿Y sabes qué? FreeIPA4 es nuestro superhéroe en este aspecto. Este no es un simple sistema de gestión de identidades y políticas, es un verdadero guardián que ofrece funciones estupendas como autenticación centralizada, control de acceso y supervisión de políticas de seguridad. En las siguientes líneas, vamos a explorar cómo podemos hacer que FreeIPA4 se convierta en el defensor de nuestra aplicación web PHP. Usaremos el protocolo Web App Authentication y otros módulos como los que estan listados aqui:

  • mod_auth_gssapi
  • mod_auth_kerb
  • mod_authnz_pam
  • mod_intercept_form_submit
  • mod_lookup_identity.

Leer artículo...

Escrito el 2023-04-16 por Alberto Ferrer
Etiquetas: windows microsoft regedit

En Windows 11, el menú contextual (también conocido como menú de clic derecho) se ha actualizado y se ha simplificado en comparación con el de Windows 10. Sin embargo, todavía es posible acceder a algunas opciones adicionales en el menú contextual de Windows 10 que no se encuentran en el de Windows 11.

Si deseas utilizar el menú contextual de Windows 10 en Windows 11, puedes hacer lo siguiente:

Leer artículo...

Escrito el 2023-04-09 por Alberto Ferrer
Etiquetas: apache mod_setenvif

Desafortunadamente, el módulo Apache SetEnvIf no admite condiciones lógicas, como OR y AND. Específicamente, no es posible establecer una variable solo si se verifican condition1 Y/O condition2.

Por ejemplo, para registrar todas las consultas POST realizadas desde la interfaz de bucle local en un archivo de registro separado, no se puede hacer esto:

    CustomLog /var/log/apache2/loopback_posts.log combined env=posting_myself
    SetEnvIf Remote_Addr "^127\.0\.0\.1$" AND Request_Method "POST" posting_myself

La primera línea es válida, solicita al servidor que registre todas las solicitudes en el archivo mencionado, solo si la variable de entorno posting_myself está establecida. La segunda línea intenta establecer la variable posting_myself si se cumplen dos condiciones (uso de un AND lógico), lo cual no es una sintaxis admitida.

Leer artículo...

Escrito el 2023-04-07 por Alberto Ferrer
Etiquetas: nginx minio varnish cdn

El artículo describe cómo crear un CDN (Content Delivery Network) utilizando Varnish, Nginx y Minio. Un CDN es una red de servidores distribuidos geográficamente que almacenan contenido web estático y lo entregan al usuario final desde el servidor más cercano.

Utilizando Varnish como caché de nivel superior y Minio como almacenamiento de objetos, podemos construir un CDN escalable y de alto rendimiento.

Nginx se utiliza como servidor web para servir el contenido estático y manejar la conexión SSL. El artículo proporciona una guía paso a paso para configurar cada uno de estos componentes y conectarlos para crear un CDN funcional.

Leer artículo...

Escrito el 2023-04-07 por Alberto Ferrer
Etiquetas: nginx slowloris

Slowloris es un tipo de ataque DDoS que intenta agotar los recursos del servidor web manteniendo varias conexiones HTTP abiertas simultáneamente, pero sin completarlas. Si tu servidor web utiliza Nginx, puedes tomar medidas para protegerlo contra este tipo de ataque.

Una forma de detener un ataque de Slowloris con Nginx es limitando el número máximo de conexiones por IP. Puedes hacerlo agregando las siguientes líneas al archivo de configuración de Nginx (/etc/nginx/nginx.conf):

Leer artículo...

Escrito el 2023-04-07 por Alberto Ferrer
Etiquetas: terraform proxmox pve linux virtualizacion

Terraform es una herramienta de infraestructura como código (IaC) que permite a los desarrolladores y administradores de sistemas describir y crear infraestructura en la nube de manera automatizada y reproducible. Con Terraform, es posible definir toda la infraestructura necesaria para una aplicación o servicio, incluyendo recursos como instancias de máquinas virtuales, bases de datos, balanceadores de carga y más, todo ello como código.

La creación de un módulo propio en Terraform es una de las mejores prácticas recomendadas para una gestión óptima del código. Un módulo es un conjunto de recursos que se combinan para ofrecer una funcionalidad común. Por ejemplo, un módulo puede contener los recursos necesarios para configurar un clúster de Kubernetes. Estos recursos pueden incluir instancias de máquinas virtuales, grupos de seguridad, reglas de firewall y más.

Para crear un módulo propio en Terraform, se deben seguir los siguientes pasos:

Leer artículo...