Tecnología

Incognitosis, ahora en versión HTTPS

Hacía tiempo que estaba pensando en darle una vuelta a las tripas de Incognitosis. Mi afición por Linux me ha permitido trastear con temas de administración de sistemas durante muchos años, y de hecho me encargué de la infraestructura técnica de TPNet mientras ejercí como CTO de esa empresa.

Aquella etapa me convirtió una afición en una profesión, y me dio la oportunidad de investigar mucho, pasar buenos ratos (y malos, lo de que todo funcione perfecto 24/7 genera estrés), aprender y también conocer más en profundidad un tema que luego siempre he tenido vigilado de cerca: el rendimiento web, o web performance.

Nada cambia en Incognitosis salvo por ese letrero verde del navegador que indica que al fin he implementado HTTPS. Viva yo.

De cuando en cuando comparto cosas en Twitter del tipo #sysadminporn, pero lo que hago de forma no transparente es guardar enlaces y tutoriales que me ayudan a comprender por dónde van los tiros en el ámbito de la seguridad y el rendimiento.

Todo milisegundo cuenta

Eso me llevó hace unos años a montar Incognitosis con una configuración singular que dio lugar a aquel megapost titulado ‘WordPress a toda pastilla con Nginx+PageSpeed, MariaDB, HHVM y más en Ubuntu 12.04‘ y en el que sobre todo destacaba el uso de HHVM y PageSpeed para acelerar la carga del blog de forma bastante notable.

Aquello tenía algún problema, porque HHVM es medio inestable con WordPress y tuve que utilizar monit para levantar el servidor hhvm cuando se quedaba tonto. La solución molaba y funcionaba, pero no era óptima.

Eso me hizo migrar a otra plataforma para olvidarme de HHVM. Desde hacía tiempo seguía la evolución de PHP 7, una versión que sin ser tan rápida como HHVM ya ganaba muchos enteros respecto a la anterior, así que quise ponerla en marcha y hacerlo además con otro experimento: Centminmod.

Siempre he sido bastante fan de los scripts que permiten automatizar tareas pesadas en Linux, y en los temas de administración de sistemas esos scripts han sido poderosos aliados durante mucho tiempo. Años atrás hablaba de Tuxlite, pero el desarrollador de esta pequeña maravilla dejó de trabajar en él, así que busqué una solución similar y la encontré en Centmin Mod, un script mucho más ambicioso y potente que eso sí, se basa en Cent OS una distro a la que estoy poco habituado aunque sea básicamente una Fedora en versión “pro”.

Objetivos de la nueva plataforma

Acabé migrando a este sistema hace un año y estaba tan contento, pero lo cierto es que Incognitosis seguía quedándose atrás en algunas cosas. La idea con la nueva renovación técnica de Incognitosis era lograr varias cosas:

  1. HTTPS al poder: para cifrar todas las peticiones entre vosotros, los lectores, y el servidor. En Google lo tienen muy en cuenta para posicionar, por ejemplo, pero mi blog no posiciona bien de todos modos (sigo con PR 3 a pesar de mis esfuerzos). Hay varias razones de peso adicionales para usarlo.
  2. HTTP/2: el nuevo protocolo HTTP/2 que inicialmente tomó como base SPDY pero que luego evolucionó de forma significativa para hacer que todo vaya más rápido gracias a una serie de técnicas muy chulas. El resultado, dicen (veremos) es que la carga de la página mejora de forma notable.
  3. Incognitosis bajo Git: otro de los cambios importantes ahora que mi mujer trabaja habitualmente con Git es el de poder hacer cambios en el blog de forma mucho más pura desde el punto de vista de un desarrollador web, con una versión de preproducción local para hacer pruebas y una versión de producción que será la que veáis vosotros. Todo bajo Git para ir controlando versiones y volviendo a anteriores si las cosas no van como deben. No se trata de usar la última versión de WordPress vía Git, sino solo la del tema y componentes específicos de mi blog.

Seguro que surgen más cosas durante el proyecto, así que iré apuntándolas por aquí. Vamos allá.

Bienvenido, EasyEngine

Hacía tiempo que pensaba reinstalar Centmin Mod de cero para aplicar estos cambios, pero en medio del proceso de investigación —de hecho ya había iniciado las pruebas en el VPS— me encontré con una sorpresa: otro script que permitía hacer básicamente lo que quería y con la misma orientación que Centmin Mod.

Ese script se llama EasyEngine, y es una pequeña maravilla tanto por su simplicidad como por su eficiencia. Está muy enfocado a automatizar instalaciones de WordPress en VPS para que sean realmente óptimas, y con la base tradicional de una plataforma LEMP (Linux, Nginx, MySQL y PHP, la “E” es por lo de la pronunciación de nginx, que es “engine-x“) añade unas cuantas cosas muy, muy chulas.

Por ejemplo, el soporte (si quieres) para HHVM y Pagespeed, además del soporte de varias opciones de cacheo que incluyen plugins como W3 Total Cache, WP Super Cache, FastCGI o la que yo he elegido, que es Redis.

Otra de las cosas que me atrajo de EasyEngine es que está orientado a Ubuntu y a Debian, distros con las que me siento más a gusto, así que acabé reinstalando el SO en uno de mis dos VPS para aplicar allí la instalación de un Ubuntu 16.04 LTS. Tras hacerlo y actualizar todo por si las moscas ejecuté dos comandos:

wget -qO ee rt.cx/ee && sudo bash ee

El primero descarga el script de instalación y prepara el VPS para poder ejecutar, mientras que el segundo es el que parece mágico:

ee site create javipas.com --wpredis --letsencrypt --php7

Ahí lo tenéis. Con esa simple línea de comandos en 15 minutos tenía creado el sitio javipas.com con WordPress, Redis, un certificado de seguridad asignado al sitio para dar soporte (al fin) a HTTPS con LetsEncrypt, y además PHP7, que como dije en la anterior versión se lleva mejor con WordPress que HHVM aunque creo que en rendimiento sigue yendo (algo) mejor HHVM.

En realidad no pude asignar el certificado de LetsEncrypt de primeras porque una de las condiciones para lograrlo es que en el registro del dominio se verifique que ese dominio apunta al servidor donde realizas la petición. O sea, que tenía que migrar todo Incognitosis primero, cambiar las IPs en mi registro de dominios y hacer un

ee site update javipas.com --letsencrypt

cuando estuviera todo hecho para asignar el certificado de una vez por todas. Es lo que hice con un scp entre ambos VPS y una copia de la BBDD (mysqldump al rescate) que también transferí por scp. Tras crear la BBDD en el nuevo VPS e importar la del VPS de origen, estaba todo listo. Por cierto, el script de EasyEngine crea un cronjob para renovar el certificado cada 90 días, cuando caducan los que te da este proyecto. Maravilloso.

O casi.

Tras aplicar el certificado la página de inicio mostraba que todo había ido bien: Incognitosis ya era “segura”. En Chrome aparece el candado en verde y el deseado “Es seguro”, pero al navegar a algún post se mostraba una advertencia: parte del contenido era seguro, pero por ejemplo me avisaba de que las imágenes no lo eran y podían ser usadas para hacer cosas malitas.

El tema es bastante conocido: los llamados contenidos mixtos hacen que parte del sitio esté protegido, pero que haya scripts, imágenes y otros objetos que no lo estén. En ManageWP encontré una buena explicación para resolverlo, y al final acudí a dos cosas: este plugin para corregir la mayoría de fallos, y además, la consola de Google Chrome para analizar qué más recursos estaban fallando.

Encontré dos un poco tontos: el código de Statcounter no estaba actualizado y tuve que copiar y pegar uno con soporte HTTPS, y también había un fallito en Feedburner, que sigo usando para generar los avisos de nuevos posts en Incognitosis por correo (os podéis apuntar al final del post, antes de los comentarios). En el enlace faltaba añadir la “s” del “https://”.

Voilà. Incognitosis ya es seguro a tope. Que viva HTTPS. Ah, y ya que estamos, que viva HTTP/2 (se puede comprobar aquí), que también está activado por defecto y funcionando (ALPN incluido) gracias a Nginx, que desde hace algún tiempo ya da soporte nativo a HTTP/2 en sus versiones estables. Ole.

Lejos de la perfección

Actualización (26/04/2017): pues la cosa no era para tanto. Los dos GET aparecen porque en GTmetrix usaba la URL no segura en lugar de meter directamente la segura, https://javipas.com. Al hacerlo desaparece el primer GET que redirige a la versión segura. ¡Hurra!

La migración a la nueva infraestructura ha traído un problemilla: ha empeorado el tiempo de carga. No creo que lo notéis mucho, pero aquí he cometido algún error que ha hecho que en algún lado esté metiendo redirecciones que no deberían estar ahí. Un test rápido en GTmetrix lo demuestra:

Ahí lo tenéis: esos dos GET deberían ser uno que además debería ser bastante más rápido. Pierdo casi un segundo en el acceso al dominio, algo que también viene motivado porque la región de pruebas es Canadá.

El tiempo de carga no es malo, pero desde luego tampoco es una maravilla, sobre todo cuando hace tiempo que traté de trabajar en minimizar la carga de la página y en hacer que todo fuese más suave. Como comenté por aquí, hay compromisos con temas como la tipografía, y aunque en general estoy contento con el rendimiento, me gustaría afinar en unas cuantas opciones para ganar más en rendimiento y hacer la página más ligerita.

Sé que podría lograr bajar a la mitad el tiempo (o menos), pero eso lleva (redundante e irónicamente) tiempo. Tiempo que no me sobra, sobre todo cuando uno se da cuenta de que para lograr la migración al final he invertido un par de días de vacaciones (a ratos) entre investigar (mucho de esto), probar, cagarla y volver a probar.

El servidor va totalmente sobrado con las visitas normales. Tengo margen de crecimiento, así que ale, a ver si un efecto Menéame me tira esto. Lo dudo.

Quedan además muchos flecos por atar, como la seguridad del servidor (medio controlado, pero aquí haré quizás un post adicional si os interesa), el tema de controlar con Git la versión de WordPress (ídem, caerá post cuando lo haga) y esos ajustes finos de Nginx, Redis, PHP y MySQL que ayudan a rebajar milisegundos, pero sea como fuere, aquí tenéis un Incognitosis cifradito y con ese soporte HTTPS que hacía tiempo que tenía que haber aplicado.

Puede que en el proceso algo no vaya como debe, así que si detectáis fallos o cosas raras, avisad. Y si hay algún gurú del #webperformance que quiera darme consejitos (yo aquí soy un principante con mucho interés), por favor, que comente. Todo por hacer que esto vaya más rápido y mejor.

Ale. Bienvenidos a Incognitosis en versión HTTPS.


Incognichollos

Esta es una selección con las mejores ofertas tecnológicas actualizadas casi diariamente, como expliqué aquí. Aunque estés en un post “antiguo” las ofertas son de última hora, los Incognichollos los actualizo aparte. Aprovecha, que no suelen durar mucho tiempo 🙂

  • Xiaomi Mi 6 128 GB: el súper teléfono de Xiaomi con el Snapdragon 835, 6 GB de RAM y ¡atentos! 128 GB de RAM al precio que yo compré el modelo de 64 hace pocos meses. Alucinad con esa doble cámara, chicos. Está a 379,68 euros en Banggood con el cupón 8GBESM6128. Si además lo queréis en versión cerámica, está a 408 euros en GearBest con el cupón MI6CER. El modelo de 64 GB  está a 335,30 euros en TomTop con el cupónWCTMI6B30, por si os apetece esa opción.
  • Canon Pixma MX475: una impresora multifunción de tinta que imprime hasta 9,7 ppm en b/n y 5,5 ppm en color. Tiene WiFi y está a precio brutal, 54,35 euros en Amazon (66% dto.)
  • iPhone 5s: a este precio imposible no destacarlo, aunque sea de hace varios años. Hay varios modelos disponibles, pero el Space Gray de 16 GB sale por 126,87 euros en Aliexpress con envío gratuito.
  • Mocasines Clarks Kyros Free: offtopic en cuanto a tecnología, pero la marca es famosa y reputada, así que si os hace falta renovar tema zapatos, puede molar. Yo me lo estoy pensando. Están a  32,44 euros en Amazon en mi caso (64% dto.), pero disponibles otras tallas a precios similares.
  • Sony DSC-WX350: esta cámara compacta de 18,2 Mpíxeles de Sony es buena compañera de viaje si tu móvil se te queda corto. Tiene zoom óptico 20x (ahí es nada), estabilizador óptico y pantalla de 3 pulgadas. Está a 193,49 euros en Amazon (31% dto.)
  • Clave de Windows 10 Pro: si no queréis complicaros la vida a la hora de instalar este sistema operativo, en Amazon están vendiendo licencias a un precio fantástico, y lo de que sea esta tienda quien gestiona todo da cierta confianza, porque el precio es demasiado bueno: 9,20 euros en Amazon, uauh.
  • Moto G4: el modelo de Motorola del año pasado está de oferta. Es un 5,5 pulgadas 1080p, 2 GB de RAM, 16 GB de capacidad y una cámara de 13 Mpíxeles. Apuesta segura si no queréis ir a algo más ambicioso. Está a139 euros en Amazon (30% dto.)
  • Gafas de realidad virtual PIMAX 4K: bajada brutal para estas gafas de realidad virtual con resolución 4K y unas prestaciones comparables en algunos apartados a las de las Oculus Rift o HTC Vive (son compatibles con sus juegos). Están a 257,77 euros en GearBest.
  • Huawei Watch Classic: un reloj inteligente muy elegante que podría tentaros a este precio: está a 228 euros en Amazon.
  • Xiaomi Mi 5s Plus: una gran opción para esta variante “grande” del 5s. Tienes pantalla de 5,7 pulgadas, un Snapdragon 821, 4 GB de RAM y 64 GB de capacidad (no ampliables), doble cámara de 13 Mpíxeles (interesante, interesante) y una batería de 3.800 mAh. Está a 256,91 euros en GearBest con el cupón MI5PLUS.
  • OnePlus 5 64 GB: el nuevo súper telefono de OnePlus, con cámara dual (16+20 MP), un Snapdragon 835 6 GB de RAM y 64 GB de capacidad (no ampliables). Está a 412,43 euros en GearBest. A mí, que conste, me gusta más el Mi 6, pero si os importa la pantalla AMOLED de 5,5 pulgadas, aquí tenéis al candidato. Por cierto, la versión con 8 GB de RAM y 128 GB de capacidad está a 489,76 euros en GearBest. con el cupón plus5G.
  • Xiaomi Mi 5 64 GB: la versión internacional de este móvil tope de gama y con precio absolutamente ridículo. Ni Motorolas G5s ni leches. Si buscáis un móvil de garantías compradlo ya, porque además ha bajado de precio: Está a 211,37 euros en GearBest.
  • Proyector 1080p XGIMI Z4 Aurora: este proyector (con aspecto de tocadiscos) que con resolución nativa de 1.280 x 800 píxeles permite llegar a resoluciones 1080p con upscaling y en The Verge lo ponían muy bien el año pasado. Llega con Android 4.3 integrado, WiFi 802.11ac, puertos USB y dos puertos HDMI, y está a 489,76 euros en GearBest con el cupón GBXZ4A.
  • Honor 6X: un 5,5 pulgadas más que decente y con sorpresa. Full HD, Kirin 655 como procesador, 3 GB de RAM, 32 GB de capacidad, y atención, cámara dual de 12 Mpíxeles con la que podrás juguetear (efecto bokeh incluido) por 249,90 euros en Amazon.
  • Portátil Yepo 737S: parecido al Chuwi LapBook pero algo más básico y barato. Tenemos un Atom Z8350, 4 GB de RAM y 128 GB de capacidad, además de Windows 10 y una pantalla de 13,3 pulgadas 1080p. Nada mal sobre todo a este precio: Está a 171,84 euros en GearBest.
  • Garmin Fenix 3: el reloj para deportistas que está especialmente orientado a triatletas y que mucha gente de este ámbito recomienda. Tiene de todo, y está en modo chollo: a tan solo 319 euros en Amazon (33% dto.)
  • Xiaomi Redmi Note 4X: este smartphone es un falso gama de entrada interesante (análisis) por su Snapdragon 625, sus 3 GB de RAM, 32 GB de capacidad ampliables y una cámara de 13 Mpíxeles decente. Esa batería de 4.100 mAh es no obstante su opción más destacada. Está a 119 euros en Cafago. con el cupón PZ00RO32.
  • Auriculares Xiaomi Mi Wireless Bluetooth: unos auriculares inalámbricos muy majos de Xiaomi a precio súper chollo: 16,55 euros en Cafago con el cupón ALPA39. Si sois nuevos usuarios y os registráis y suscribís a la newsletter os darán 200 puntos para descontaros 2 euros más (en la cajita donde se paga tenéis que añadir tanto el cupón como los puntos a descontar).
  • Samsung Galaxy S7 Edge: el tope de gama de Samsung del año pasado (en su versión Dual SIM liberada) sigue siendo un telefonazo con esa pantalla curvada de 5,5 pulgadas, 4 GB de RAM, 32 GB de capacidad (ampliables) y sobre todo una cámara fantástica. Está a 448 euros en eBay.
  • OnePlus 3T: aunque el OP5 ya está disponible este modelo sigue siendo interesante. El Snapdragon 821, 6 GB de RAM, 64 GB de capacidad y una cámara muy maja justifican un precio que no está nada mal: 349,38 euros en Banggood con el cupón 7BGESOP3T64.
  • ASUS ZenFone Zoom 128 GB: destaca por su zoom 3x (análisis) y una parte trasera que recuerda mucho a los Lumia 1020. Las especificaciones son curiosas: un Atom Z3590, 4 GB de RAM, 128 GB de capacidad (uauh) y pantalla 1080p de 5,5 pulgadas. Una opción interesante por los 176,14 euros que cuesta en GearBest.
  • Xiaomi Air 13: el portátil más chollo de los últimos tiempos vuelve a estar a precio destacado. Ya sabéis, no tiene desperdicio y es una gran opción si buscáis portátiles de esta gama. Está a 592,87 euros en GearBest con el cupón ESMAIR13 para el modelo plateado, ole.
  • Moto Z Play 64 GB: uno de los terminales más curiosos del año pasado, y que sigue teniendo su encanto aún hoy, sobre todo por los Moto Mods. Pantalla de 5,5 1080p, SnapDragon 625, 3 GB de RAM, 64 GB de capacidad (ampliables) y cámara de 16 Mpíxeles, todo por 213,03 euros en Banggood.
  • Tarjeta microSD SanDisk Extreme 128 GB: con adaptador SD, buena oferta si quieres ampliar la memoria de tu móvil, por ejemplo. Está a 51,51 euros en Amazon (38% dto.). Si no necesitáis tanto, la microSD SanDisk Ultra de 32 GB sale a 13,99 euros en Amazon (22% dto.)
  • GamePad para Android/iOS: si queréis jugar en vuestro móvil con un mando tipo PS4/Xbox que además tiene soporte para el móvil, atentos al GamePad de Ipega, que cuenta con conexión Bluetooth y batería de 380 mAh. El precio, 13,74 euros en GearBest.
  • Clave de Microsoft Office 2016: si además de Windows 10 queréis usar la suite ofimática de Microsoft, aquí tenéis licencias de la versión de 2016 a precio igualmente fantástico: 10,90 euros en Amazon.
  • Gafas polarizadas de oferta: incognichollo off-topic, pero es que las críticas son fantásticas para estas gafas que valen tanto para hacer deporte como para dar una vuelta. Polarizadas y con diseño simpático. Adivinad quién acaba de coger unas? Están a 12,99 euros en Amazon.
  • SSD Samsung 850 EVO 1 TB: nada menos que un terabyte de capacidad para esta unidad impresionante de Samsung que tiene un precio estupendo si os apetece tener mucho almacenamiento en vuestro equipo, y muy rápido. Está a 300 euros en Amazon (25% dto.).
  • Dron DJI Phantom 3: uno de los mejores drones de los últimos tiempos está a precio de escándalo, así que si queréis ir más allá en este ámbito, gran opción. Lo tenéis a 404,19 euros en TomTop con el cupón WCTDJIPH3.
  • Patinete eléctrico Xiaomi: el scooter de Xiaomi es una buena opción para desplazamientos urbanos. Hasta 30 km de autonomía, velocidades de 25 km/h. Todo por un precio de 326,51 euros en GearBest con el cupón GBXMSTE.
  • Xiaomi Mi 5s: la versión más potente del Mi5, que llega con el Snapdragon 821, 3 GB de RAM y 64 GB de capacidad, además de esa cámara de 12 Mpíxeles con el mismo sensor de los Google Pixel. Está a 221,16 euros en GearBest.
  • Xiaomi Mi WiFi Router/NAS: este router que es medio NAS también mola porque tiene un disco duro de 1 TB dentro y porque además de tener WiFi de doble banda tiene NFC (para negociar la conexión WiFi) y un software llamativo. Por 111,99 euros en GearBest y con envío rápido, mola.
  • Xiaomi Air 12: la nueva versión del modelo de 12,5 pulgadas con un Core m3-7Y30, 4 GB de RAM y 128 GB de SSD es una fantástica opción. El modelo plateado está a 421,63 euros en GearBest con el cupón NEWMIAIR12.
  • Router TP-Link AC1750 Archer C7: si el router de tu operadora no te da buenas prestaciones (sobre todo en temas como la cobertura WiFi) aquí tienes un gran candidato. Soporta WiFi 802.11ac dual-band, y tiene tres antenas externas de 5 dBi, además de dos puertos USB 2.0. Está a 69,95 euros en Amazon (40% dto.)
  • Samsung Galaxy S6 32 GB: un móvil fantástico aunque sea un modelo de hace dos años. Si buscáis una gran cámara y un hardware que no está nada mal lo tenéis en eBay por 219,99 euros. Mucho mejor que muchos actuales con ese precio, creedme.
  • Portátil Chuwi LapBook 12.3: un equipo de lo más interesante que probé hace poco y que llega con un Celeron, Windows 10 Home, pantalla de 12,3 pulgadas con resolución 2.736 x 1.824, 6 GB de RAM y 64 GB de capacidad (ampliables), además de puerto HDMI, 2xUSB 3.0 y batería de 8.000 mAh. Muy, muy cuco por 249,17 euros en GearBest. El modelo de 14 pulgadas es aún más barato, y está a 199,69 euros en GearBest con el cupón ChuwiLapA.
  • Xiaomi Mi Max 2: la versión con ROM internacional de este súperphablet de 6,44 pulgadas está súper rebajado. Llega con un Snapdragon 625, cámara de 12 Mpíxeles, 4 GB de RAM y 64 GB de capacidad y esa batería inacabable de 5.300 mAh. Está a 239,72 euros en GearBest.
  • Huawei P8 Lite: este cinco pulgadas (análisis)  sigue teniendo encanto con su Kirin 655, 3 GB de RAM y 16 GB de capacidad. Cuenta con lector de huellas y cámara de 12 Mpíxeles, muy simpático por 155,98 euros en Amazon.
  • Chuwi Hi10 Pro: un tablet convertible que puede haceros un buen servicio en viajes y vacaciones. Cuenta con una pantalla de 10,1 pulgadas (1.920 x 1.200), Intel Atom X5-Z8350, 4 GB de RAM, 64 GB de capacidad ampliables y Windows 10 o Android 5.1. Cuesta 128,88 euros en GearBest con el cupón HIPROES, y la funda-teclado opcional (pero que es lo que le da sentido al conjunto) cuesta 37,31 euros.
  • Disco duro externo Maxtor 1 TB: Backups al poder, chicos. 49,40 euros en Amazon (25% dto.). 2 TB a 73,46 euros en Amazon (27% dto.) y 4 TB a 114 euros en Amazon(41% dto.)
  • Impresora 3D LESHP: si queréis probar a iniciaros en este mundillo, una opción singular es esta impresora que acepta tanto PLA como ABS. Tienes que montar la impresora (divertido, supongo), y lograrás un volumen de impresión de 220 x 220 x 230 mm. Está a 254,99 euros en Amazon.

¿Quieres recibir un correo de aviso cuando publique nuevas entradas?

Standard

6 comentarios en “Incognitosis, ahora en versión HTTPS

  1. Gracias Javier!

    Recordar que había hecho este procedimiento en el mio me hizo revisar la implementación que hice.

    Tenia 2 errores (uno de ellos que mi montaje de Piwik para estadísticas no estaba funcionando).

    Solucionados ya!

Comentarios cerrados