{"id":2883,"date":"2020-09-28T11:53:21","date_gmt":"2020-09-28T09:53:21","guid":{"rendered":"https:\/\/www.hiberus.com\/blog\/?p=2883"},"modified":"2023-12-13T11:32:50","modified_gmt":"2023-12-13T10:32:50","slug":"como-soportar-miles-de-visitas-y-no-morir-en-el-intento","status":"publish","type":"post","link":"https:\/\/www.hiberus.com\/crecemos-contigo\/como-soportar-miles-de-visitas-y-no-morir-en-el-intento\/","title":{"rendered":"Rendimiento en Drupal: c\u00f3mo soportar miles de visitas y no morir en el intento"},"content":{"rendered":"<p>\u00bfTu web en <a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/tag\/drupal\/\">Drupal<\/a> deja de funcionar cuando tienes muchas visitas porque el alojamiento no lo soporta?\u00bfQuieres poder soportar m\u00e1s visitantes en tu web sin tener que ampliar el coste de alojamiento? Si la respuesta a las preguntas anteriores es afirmativa entonces es necesario mejorar el sistema de cach\u00e9 del sitio web.<\/p>\n<h2>C\u00f3mo mejorar los tiempos de carga de Drupal<\/h2>\n<p><strong>El m\u00f3dulo Boost mejora los tiempos de carga de un sitio web<\/strong> al servir p\u00e1ginas est\u00e1ticas para los visitantes an\u00f3nimos. Utiliza .htaccess con lo que consigue evitar el uso de PHP y de la base de datos para usuarios an\u00f3nimos. De esta forma consigue un rendimiento similar al de un sitio est\u00e1tico con HTML ya que un servidor como Apache es capaz de servir cientos de peticiones de este tipo por segundo. Se trata de la mejor opci\u00f3n de cach\u00e9 para mejorar el rendimiento de un sitio Drupal en un alojamiento compartido. En el caso de un VPS o un servidor dedicado existen otras alternativas, por ejemplo Varnish, aunque son mucho m\u00e1s complicadas de configurar que Boost.<\/p>\n<p><strong>Algunas de sus principales caracter\u00edsticas son:<\/strong><\/p>\n<ul style=\"list-style-type: circle;\">\n<li>Soporta alojamientos compartidos, VPS y servidores dedicados<\/li>\n<li>Dise\u00f1ado para trabajar con Apache aunque soporta Nginx e IIS<\/li>\n<li>Soporta instalaciones multi-sitio<\/li>\n<li>Dispone de un generador de .htaccess integrado<\/li>\n<li>Tiempo de vida de la cach\u00e9 configurable<\/li>\n<li>Borrado de cach\u00e9s mediante tareas de cron<\/li>\n<li>Facilidad de instalaci\u00f3n y configuraci\u00f3n<\/li>\n<\/ul>\n<p>A continuaci\u00f3n vamos a ver los pasos necesarios para instalar y configurar Boost<\/p>\n<ol>\n<li><strong>Instalaci\u00f3n del m\u00f3dulo<\/strong> Boost no depende de ning\u00fan otro m\u00f3dulo para trabajar, el \u00fanico requisito es que las URL limpias tienen que estar habilitadas, se puede verificar en <em>admin\/config\/search\/clean-urls<\/em>, y funcionando correctamente. Para instalarlo se procede igual que con cualquier otro m\u00f3dulo de Drupal, descarg\u00e1ndolo desde la p\u00e1gina del proyecto,\u00a0 o usando drush, <em>drush en boost -y<\/em><\/li>\n<li><strong>Configurar m\u00f3dulo y editar archivo .htaccess<\/strong> Una vez instalado podemos acceder a la p\u00e1gina de configuraci\u00f3n del m\u00f3dulo, <em>admin\/config\/system\/boost<\/em>, el m\u00f3dulo ya define una configuraci\u00f3n est\u00e1ndar que puede ser \u00fatil en la mayor\u00eda de los casos.<\/li>\n<\/ol>\n<p>En la pesta\u00f1a \u2018.htaccess\u2019, <em>admin\/config\/system\/boost\/htaccess\/generator<\/em>, el m\u00f3dulo nos facilita el c\u00f3digo necesario para insertarlo en el archivo .htaccess de nuestro sitio as\u00ed como el lugar en que hay que insertarlo. Al igual que con la configuraci\u00f3n general, ya est\u00e1n configuradas unas opciones por defecto que nos permitir\u00e1n generar una configuraci\u00f3n v\u00e1lida para nuestro archivo .htaccess.<\/p>\n<ol>\n<li><strong>Permisos de la carpeta de cach\u00e9<\/strong> Por defecto Boost guarda los archivos generados en la carpeta <em>cache<\/em> y dentro de esta en una carpeta <em>normal<\/em>. Es necesario verificar los permisos de esta carpeta para asegurarnos de que dispone de permisos de escritura. En el informe de estado, <em>admin\/reports\/status<\/em>, se mostrar\u00e1 un error advirtiendo de este hecho.<\/li>\n<li><strong>Comprobar funcionamiento<\/strong> Para verificar el correcto funcionamiento del m\u00f3dulo podemos realizar dos comprobaciones, la primera consiste en verificar que se generan archivos dentro de la carpeta <em>cache\/normal<\/em> al visitar distintas p\u00e1ginas del sitio y la segunda consiste en observar el c\u00f3digo fuente de una p\u00e1gina visitada como usuario an\u00f3nimo,al final de la misma tendremos que ver una cadena parecida a esta: <em>&lt;!&#8211; Page cached by Boost @ 2015-09-23 12:28:00, expires @ 2015-09-23 13:28:00, lifetime 1 hora &#8211;&gt;<\/em><\/li>\n<li><strong>Ignorar cache y .htaccess en el sistema de control de versiones usado<\/strong> Es recomendable que tanto la carpeta usada por Boost para almacenar la cach\u00e9 como el archivo .htaccess no se encuentren versionados por un sistema de control de versiones.<\/li>\n<li><strong>M\u00f3dulos extra<\/strong> Aunque con la configuraci\u00f3n vista en los puntos anteriores Boost funcionar\u00e1 correctamente, existen algunos m\u00f3dulos extra que nos pueden aportar funcionalidades adicionales: <strong>Cache Expiration<\/strong> (https:\/\/www.drupal.org\/project\/expire): Marca el contenido actualizado como expirado de manera que en la siguiente peticion se regenerar\u00e1, de esta forma evitamos servir contenido desactualizado. <strong>Global Redirect<\/strong> (https:\/\/www.drupal.org\/project\/globalredirect): Evita que tengamos varias URL apuntando al mismo contenido. <strong>Pathauto<\/strong> (https:\/\/www.drupal.org\/project\/pathauto): Permite generar alias de URL de manera autom\u00e1tica en funci\u00f3n de patrones. <strong>Transliteration<\/strong> (https:\/\/www.drupal.org\/project\/transliteration): Intenta representar con caracteres US-ASCII cualquier testo Unicode, tambi\u00e9n permite aplicarlo a los nombres de los archivos subidos.<\/li>\n<\/ol>\n<p>En Hiberus hemos usado<strong> Boost para crear con \u00e9xito la cach\u00e9 est\u00e1tica de varios sitios<\/strong> cuyo porcentaje de tr\u00e1fico proveniente de usuarios an\u00f3nimos es muy alto, por ejemplo, en el recientemente lanzado portal de Turismo del Ayuntamiento de Madrid, <a title=\"esMadrid\" href=\"http:\/\/www.esmadrid.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">www.esmadrid.com<\/a>, puedes conocer m\u00e1s detalles en\u00a0el post del <a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/nueva-web-en-drupal-para-el-portal-de-turismo-esmadrid-com\">Caso de \u00c9xito<\/a>. En este proyecto realizamos una bater\u00eda de pruebas antes y despu\u00e9s de instalar Boost, estas pruebas se realizaron manteniendo todos los elementos del sitio exactamente igual de una prueba a otra excepto por el m\u00f3dulo boost que en la segunda parte se encontraba instalado y configurado. <span style=\"text-decoration: underline;\">Los resultados obtenidos fueron los siguientes:<\/span><\/p>\n<ul>\n<li><strong>Sin Boost instalado:<\/strong> La infraestructura preparada para el proyecto<strong> era capaz de dar servicio a 50 usuarios concurrentes<sup>1<\/sup><\/strong> antes de comenzar a degradarse y con m\u00e1s de 70 usuarios concurrentes se llegaba a un punto de saturaci\u00f3n del servicio.<\/li>\n<li><strong>Con Boost instalado:<\/strong> La misma infraestructura era<strong> capaz de soportar m\u00e1s de 220 usuarios concurrentes<sup>1<\/sup><\/strong> de manera sostenida sin sufrir ning\u00fan tipo de alteraci\u00f3n. En el momento de la prueba no pudimos sobrepasar este l\u00edmite de usuarios debido a una limitaci\u00f3n existente en la salida a Internet de la plataforma.<\/li>\n<\/ul>\n<p>1: entendemos como usuarios concurrentes al n\u00famero de peticiones simult\u00e1neas por segundo.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: center;\"><iframe loading=\"lazy\" title=\"YouTube video player\" src=\"https:\/\/www.youtube.com\/embed\/ZeEVuWucXEc\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"> <span data-mce-type=\"bookmark\" style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" class=\"mce_SELRES_start\">\ufeff<\/span><\/iframe><\/p>\n<p>&nbsp;<\/p>\n<p>En Hiberus contamos con un departamento de <strong>m\u00e1s de 100 desarrolladores Drupal<\/strong>. Nuestros m\u00e1s de 10 a\u00f1os de experiencia nos ha hecho trabajar en los principales <a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/casos-de-exito-de-drupal\/\">casos de \u00e9xito Drupal<\/a> a nivel nacional. Cu\u00e9ntanos tu proyecto y conoce a nuestro equipo <a href=\"https:\/\/www.hiberus.com\/dxp\/drupal\">experto en Drupal<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/www.hiberus.com\/guias\/drupal11\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-29020\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/04\/Drupal10-horizntal-1024x535.jpg\" alt=\"\" width=\"678\" height=\"354\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/04\/Drupal10-horizntal-1024x535.jpg 1024w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/04\/Drupal10-horizntal-300x157.jpg 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/04\/Drupal10-horizntal-768x401.jpg 768w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/04\/Drupal10-horizntal-360x188.jpg 360w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/04\/Drupal10-horizntal.jpg 1200w\" sizes=\"auto, (max-width: 678px) 100vw, 678px\" \/><\/a><\/p>\n        <div class=\"row\">\n            <div class=\"block-cta-form\" style=\"background-color: #003664;\">\n                <div class=\"content-cta-form\">\n                    <div class=\"text-cta-form\">\n                        <p class=\"title-cta-form\">\u00bfQuieres m\u00e1s informaci\u00f3n sobre nuestros servicios de Drupal?<\/p>\n                        <p>Contacta con nuestro equipo de Drupal<\/p>\n                    <\/div>\n                    <div class=\"form-fields\">\n                        \n<div class=\"wpcf7 no-js\" id=\"wpcf7-f33973-o1\" lang=\"es-ES\" dir=\"ltr\" data-wpcf7-id=\"33973\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/crecemos-contigo\/wp-json\/wp\/v2\/posts\/2883#wpcf7-f33973-o1\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"Formulario de contacto\" novalidate=\"novalidate\" data-status=\"init\">\n<fieldset class=\"hidden-fields-container\"><input type=\"hidden\" name=\"_wpcf7\" value=\"33973\" \/><input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.1.5\" \/><input type=\"hidden\" name=\"_wpcf7_locale\" value=\"es_ES\" \/><input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f33973-o1\" \/><input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/><input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/><input type=\"hidden\" name=\"_wpcf7_recaptcha_response\" value=\"\" \/>\n<\/fieldset>\n<div id=\"responsive-form\" class=\"clearfix\">\n\t<div class=\"form-row\">\n\t\t<div class=\"column-half\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"nombre\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Nombre *\" value=\"\" type=\"text\" name=\"nombre\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t\t<div class=\"column-half\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"apellido\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Apellido *\" value=\"\" type=\"text\" name=\"apellido\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-half\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"correo\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Correo corporativo *\" value=\"\" type=\"email\" name=\"correo\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t\t<div class=\"column-half\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"telf-contacto\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-tel wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-tel\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Tel\u00e9fono *\" value=\"\" type=\"tel\" name=\"telf-contacto\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-half\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"compania\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Compa\u00f1ia *\" value=\"\" type=\"text\" name=\"compania\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-full\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"mensaje\"><textarea cols=\"40\" rows=\"10\" maxlength=\"2000\" class=\"wpcf7-form-control wpcf7-textarea wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Mensaje *\" name=\"mensaje\"><\/textarea><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-full color-acceptance\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"politica\"><span class=\"wpcf7-form-control wpcf7-acceptance\"><span class=\"wpcf7-list-item\"><label><input type=\"checkbox\" name=\"politica\" value=\"1\" aria-invalid=\"false\" \/><span class=\"wpcf7-list-item-label\">He le\u00eddo y acepto la <a href=\"https:\/\/www.hiberus.com\/politica\" target=\"_blank\"><u>Pol\u00edtica de privacidad<\/u><\/a><\/span><\/label><\/span><\/span><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-full color-acceptance\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"marketing\"><span class=\"wpcf7-form-control wpcf7-acceptance optional\"><span class=\"wpcf7-list-item\"><label><input type=\"checkbox\" name=\"marketing\" value=\"1\" aria-invalid=\"false\" \/><span class=\"wpcf7-list-item-label\">Me gustar\u00eda recibir comunicaciones de marketing de Hiberus y sobre sus productos, servicios y eventos.<\/span><\/label><\/span><\/span><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-half\">\n\t\t\t<p><input class=\"wpcf7-form-control wpcf7-submit has-spinner\" type=\"submit\" value=\"Contacta con nosotros\" \/>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div id=\"campos_ocultos\" class=\"hidden\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"oculto_analitica_new1\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" id=\"oculto_analitica_new1\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"oculto_analitica_new1\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"oculto_analitica_new2\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" id=\"oculto_analitica_new2\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"oculto_analitica_new2\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"oculto_analitica_new3\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" id=\"oculto_analitica_new3\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"oculto_analitica_new3\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"oculto_analitica_new4\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" id=\"oculto_analitica_new4\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"oculto_analitica_new4\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"oculto_analitica_new_p\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" id=\"oculto_analitica_new_p\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"oculto_analitica_new_p\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n<!--end responsive-form--><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n        \n","protected":false},"excerpt":{"rendered":"<p>\u00bfTu web en Drupal deja de funcionar cuando tienes muchas visitas porque el alojamiento no lo soporta?\u00bfQuieres poder soportar m\u00e1s visitantes en&#8230;<\/p>\n","protected":false},"author":23,"featured_media":19009,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_ayudawp_aiss_exclude":false,"footnotes":""},"categories":[3,232],"tags":[32,61],"class_list":{"0":"post-2883","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-negocio-electronico","8":"category-portales-dxp","9":"tag-drupal","10":"tag-portal-corporativo"},"acf":[],"_links":{"self":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts\/2883","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/users\/23"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/comments?post=2883"}],"version-history":[{"count":12,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts\/2883\/revisions"}],"predecessor-version":[{"id":38744,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts\/2883\/revisions\/38744"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/media\/19009"}],"wp:attachment":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/media?parent=2883"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/categories?post=2883"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/tags?post=2883"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}