Ago 192016
 

Históricamente, la necesidad de implementar un protocolo seguro de comunicación entre un cliente y un servidor web sólo se presentaba para sitios que manejaban datos confidenciales de los usuarios, como por ejemplo las tiendas online. Sin embargo, desde que Google anunció a mediados de 2014 que el uso del protocolo seguro https iba a ser tenido en cuenta por el algoritmo que determina el posicionamiento (ranking) de las páginas en los resultados de búsqueda, cada vez son más los administradores de sitios web que se plantean la conveniencia de implementar este protocolo.

Para ello, hay que instalar y configurar un certificado SSL en el servidor. El proceso de solicitar un certificado, instalarlo y configurarlo ha sido tradicionalmente engorroso, y además era necesario adquirir el certificado desembolsando una cierta cantidad de dinero. La iniciativa Let’s Encrypt (promovida por Google), ha venido a solucionar este problema.

En este artículo se explica el procedimiento de instalación y configuración de un certificado SSL de Let’s Encrypt sobre un servidor Debian/Ubuntu que ejecuta un servidor web Apache.

Seguir leyendo »

 Publicado por en 8:03 am
May 052016
 

Muchas aplicaciones, como por ejemplo la popular base de datos MySQL, crean ficheros temporales en disco para la ejecución de algunos de sus procesos. El rendimiento de este tipo de aplicaciones se puede mejorar significativamente creando un disco sobre la memoria RAM del sistema, que es varios órdenes de magnitud más rápida que los discos magnéticos convencionales, o los más recientes discos SSD.

En este artículo veremos cómo se puede crear un disco en RAM, y cómo configurar MySQL para que haga uso del mismo, en un sistema Debian/Ubuntu. El procedimiento se puede aplicar con ligeras modificaciones a casi todas las demás distribuciones de Linux.

Seguir leyendo »

 Publicado por en 4:15 pm
May 012016
 

En momentos de mucho uso, un servidor puede necesitar puntualmente ejecutar simultáneamente un número elevado de procesos. Cada proceso necesita reservar una cantidad de memoria física, y en ocasiones puede no haber suficiente memoria disponible para todos.

En este caso, el sistema rechaza la ejecución de los nuevos procesos.

Para evitar esto, se puede configurar un espacio de swap en disco. De este modo, el sistema guarda temporalmente en dicho espacio los bloques de memoria que tienen menos accesos, para liberar espacio y permitir la ejecución de los nuevos procesos.

En un servidor dedicado, es habitual crear una partición de disco dedicada a swap. Pero en otros casos no es posible particionar el disco. Este es en muchas ocasiones el caso de una máquina virtual contratada a un proveedor de hosting (Amazon Web Services, DigitalOcean, …)

En este caso, es posible crear un fichero y configurar el sistema para que lo utilize como espacio de swap. En este artículo se explica cómo realizar una configuración de este tipo.

Seguir leyendo »

 Publicado por en 12:08 pm
Abr 292016
 

La comunicación a través de internet entre una máquina cliente y un servidor supone un problema de seguridad. Normalmente, para ofrecer un determinado servicio, el servidor abre un puerto TCP en su dirección IP pública, y queda a la espera de solicitudes de conexión del cliente. Esto deja al servidor expuesto a ataques procedentes de cualquier otra máquina conectada a internet.

En este artículo se explica una de las posibles soluciones a este problema, mediante la creación de túneles de comunicación SSH.

Seguir leyendo »

 Publicado por en 7:11 am
Feb 032016
 

En un sistema accesible por internet, es importante prestar especial atención a la seguridad del mismo. Esto incluye mantener permanentemente actualizados los paquetes software instalados en el sistema, aplicando las últimas actualizaciones y parches de seguridad, tan pronto como están disponibles.

En este artículo se explica la manera de instalar y configurar en un servidor Debian el paquete cron-apt, que puede ser configurado para automatizar completamente esta tarea.

Seguir leyendo »

 Publicado por en 9:28 am
Nov 282015
 

El tamaño de bloque de un sistema de ficheros (filesystem block size) es número mínimo de bytes que son leídos o escritos en el disco cada vez que se realiza una operación de entrada/salida. Este parámetro puede ser relevante a la hora de optimizar el rendimiento de determinadas aplicaciones, como por ejemplo una base de datos.

En este artículo explicamos como determinar este y otros parámetros de un sistema de ficheros en un servidor Linux.

Seguir leyendo »

 Publicado por en 5:39 pm
Sep 132015
 

A diferencia de otros lenguajes de programación, como C++ o Java, PHP es un lenguaje interpretado. Esto significa que cada vez que se ejecuta un script escrito en PHP, el intérprete debe convertir las sentencias contenidas en el código fuente del script en sentencias de bajo nivel directamente ejecutables por la máquina.

En el caso de un servidor web, los scripts que generan el código HTML de las páginas que son entregadas a los clientes pueden ser ejecutados cientos o miles de veces cada día. Para evitar que el intérprete tenga que ejecutarse cada vez, es habitual implementar un mecanismo por el cual el opcode generado la primera vez que se invoca al script se guarda, y es reutilizado en sucesivas ejecuciones del mismo script.

Hasta la versión 5.4 de PHP, este mecanismo de cache estaba implementado por distintas extensiones, de entre las cuales la más popular es probablemente APC (Alternate oPcode Cache). La versión 5.5 de PHP incluye en la distribución base el “Zen opcode cache”, que sustituye a la extensión APC.

En este artículo se exponen las características de esta nueva implementación, y la manera de configurarla.

Seguir leyendo »

 Publicado por en 3:33 pm
Jul 052015
 

HTTPS es un protocolo seguro para la encriptación de la información intercambiada entre un navegador y un servidor web.

Tradicionalmente, ha sido recomendable implementar HTTPS en sitios web que ofrecen funcionalidad adicional a usuarios registrados, tales como tiendas online y otros sitios web de comercio electrónico. En este tipo de sitios, la información que envía el cliente al servidor, y la que recibe del mismo, puede contener contraseñas, números de tarjetas de crédito, y en general datos confidenciales que deben ser encriptados.

Más recientemente, existe una campaña liderada por Google para implementar la encriptación HTTPS en todo tipo de sitios web. Google ha reconocido que el uso de HTTPS en un sitio web es una señal que mejora (aunque débilmente) el posicionamiento del sitio en los resultados de búsqueda.

En este artículo vamos a explicar una manera sencilla de implementar este protocolo en un sitio WordPress, utilizando la red de entrega de contenidos Cloudflare.

Seguir leyendo »

 Publicado por en 9:39 am
Mar 272015
 

La ubicación de un servidor web en relación con la ubicación de los usuarios que acceden al mismo puede influir decisivamente en el tiempo de carga efectivo de las páginas. Si la audiencia del un sitio es internacional, los usuarios que acceden desde América o Australia a un servidor ubicado en España o Alemania tendrán una impresión peor que la de los usuarios que acceden desde Europa.

Este problema se puede evitar utilizando un servicio de entrega de contenido distribuído, conocido habitualmente como CDN (Content Delivery Network).

En este artículo comentamos las características de un servicio de este tipo, poniendo como ejemplo la configuración de un sitio WordPress para hacer uso del CDN CloudFlare

Seguir leyendo »

 Publicado por en 3:45 pm
Mar 272015
 

En un servidor linux, es habitual encontrar ciertos procesos que se ejecutan periódicamente, mediante entradas en cron. Algunos tienen una periodicidad de un mes, una semana o un día, pero otros deben ser ejecutados en períodos de tiempo mucho más cortos, de uno o dos minutos.

En ocasiones, el tiempo de ejecución de estos procesos puede ser muy variable, y eventualmente puede ocurrir que un proceso esté todavía ejecutándose cuando llega el momento de volver a ejecutar dicho proceso. Esto puede provocar problemas graves, dependiendo del tipo de tarea que lleva a cabo el proceso.

En este artículo se explica cómo detectar esta circunstancia, y evitar que un mismo proceso se ejecute más de una vez concurrentemente.

Seguir leyendo »

 Publicado por en 10:24 am