Caching dinámico extremadamente rápido para WordPress: Entrevista con Hristo Pandjarov desde SiteGround


Esta semana, entrevistamos a Hristo Pandjarov desde SiteGround. Hristo ayuda a liderar el desarrollo del complemento de Cachepress de SiteGround (¿quieres saber cómo usarlo? Explicamos aquí), parte de una innovadora solución de almacenamiento dinámico que usa NGINX como viceversa para servir páginas completas de la memoria del servidor. Acerca de SiteGround: es nuestra compañía de sombras favorita (Guía de selección de planos y revisión de SiteGround), así como el anfitrión de nuestra agencia y otros proyectos web. Todos estos tienen un rendimiento-supercribinador y 100% de confianza en una sola cuenta de Gogeek de SiteGround.


Nota completa de la entrevista: el video contiene una presentación basada en el intercambio de pantalla del código de complemento que omití de la transcripción. ¡Disfrutar!
https://www.youtube.com/watch?v=09gltthqgzoa
Transcripción de Fred: Hristo se une, un líder técnico en SiteGround, para discutir el complemento de caché de Cachepress. Cualquier instalación de WordPress alojada en SiteGround recibe la solución de almacenamiento de caché, SuperCacher. Cachepress es una forma de administrar el caché de SuperCacher en el administrador de WordPress, sin tener que acceder directamente a su interfaz de alojamiento.
Hristo, cuéntanos un poco sobre Cachepress, sobre la historia allí y cuánto tiempo trabajas en ello. Historia HISTO HRISTO: Hemos hecho muchas cosas para mejorar el rendimiento general de WordPress, no solo el almacenamiento en caché. Es un gran esfuerzo para proporcionar el entorno de alojamiento más rápido para WordPress-Everything, desde tiempos de espera, configuraciones, hasta la última versión de PHP y Memcacded. Todo es una gran cosa, casi relacionado con cualquier otra cosa. La memorización de caché es una gran parte de lo que hacemos para proporcionar a nuestros clientes altas velocidades de carga, especialmente para WordPress. Utilizamos NGINX como reverso proxy y desarrollamos el complemento porque queríamos integrar el servicio y el sitio de WordPress sin problemas. No es tan difícil memorizar completamente un sitio web, pero es difícil borrar ese caché cuando lo necesite. Y no es tan fácil hacer que funcione sin problemas sin tener que limpiar manualmente el caché. Entonces, desde aquí comenzamos a hacer el complemento.
Ningin Reverse proxy Nginx como proxy inverso es mucho más rápido que cualquier almacenamiento de caché, ya que guarda el contenido almacenado en la memoria del servidor. David: Antes de intervenir, tengo una pregunta ingenua: ¿en qué se diferencia Nginx Reverse Proxy o mejor que WP Super Cache o algo así? Hristo: Nginx como proxy inverso es mucho más rápido que cualquier complemento de caché que pueda pensar, simplemente porque NGINX es un servicio y se ejecuta en todo el servidor, y luego ese contenido se guarda en la memoria del servidor. Cuando sus visitantes acceden al contenido almacenado en caché, cuando desean cargar una página en caché, obtienen la página de la manera más rápida: obtienen su RAM del servidor, justo antes de llegar al servidor web. Por lo tanto, tenemos dos ventajas: primero De todo, obtienes tu contenido del lugar más rápido posible. No hay nada más rápido que la memoria del servidor. En segundo lugar, reduzca significativamente la tarea que esos visitantes causan el servidor web; Debido a que los procesadores PHP no son golpeados, ni siquiera llega al servidor web. Lo que hacen los complementos de caché habituales como W3 Total Cache Do es bastante similar, pero lo que hago es guardar archivos estáticos en el disco duro del servidor. Y si compara los tiempos de carga para cargar algo desde un disco duro, es mucho más rápido cargar desde la memoria del servidor.
Y nuevamente, cuando usa un complemento, sus visitantes acceden al servidor web, luego el servidor web cobra el archivo y, por lo tanto, crea nuevamente. Todavía es un archivo HTML estático, pero nuevamente se procesa por, en nuestro caso, por Apache, que se encuentra detrás de Ningx. David: Entonces, tiene una nueva capa frente a Apache, mientras que con otros complementos presionan Apache y tiene que procesar y devolver el contenido de un archivo. Hristo: Sí. Y nuevamente, cargue ese contenido de un archivo de disco duro, mientras que con nuestro proxy lo carga desde la memoria del servidor. Memorización en memoria de caché estático, dinámica y de objetos en caché estático almacena CSS, JavaScript y otro contenido estático; El caché de objetos Memcached memoriza los interrogatorios de la base de datos en caché; Y el Cache Ninx dinámico es el almacenamiento en caché en toda la página. Fred: Hay tres capas para este almacenamiento en caché, ¿verdad? Hristo: Sí. Fred: Sería genial saber qué hace cada uno de ellos. HRISTO: El caché estático se activa de forma predeterminada en todas las cuentas. Es bastante simple: hace un caché estático. Memor en Cache CSS, JavaScript, Flash, busca contenido estático. Ya sea que use o no el complemento SiteGround, solo funcionará en todo el dominio. Ni siquiera tienes que usar WordPress. Simplemente memoriza el contenido estático en caché, es decir. El caché dinámico es la parte interesante; Es la parte de proxy inversa de la que he hablado hasta ahora.
La idea detrás de Memcached es acelerar la conexión a la base de datos. Si tiene ciertas consultas que a menudo se repiten en la base de datos, puede ayudar y acelerar este proceso. La última pestaña es HHVM, pero HHVM solo está disponible en nuestras cuentas de host en la nube, por lo que no obtendrá GoGeek. Entonces, cuando obtienes contenido de NGINX, es el almacenamiento de caché de toda la página: el resultado completo de HTML. También almacenamos contenido estático en caché, como imágenes, javascript, archivos CSS. Sin embargo, con la salida de HTML, el mecanismo es el mismo: es el almacenamiento de toda la página, no el almacenamiento de objetos. HRISTO: Sí, el complemento le brinda la oportunidad de activar Memcached D2. David: Y eso mantiene tu caché en la memoria, ¿verdad? Hristo: Entre otras cosas, sí.
CPANEL e interfaz de usuario Asegúrese de haber activado SuperCacher en CPanel. El complemento actúa como un conector entre WordPress y el servicio: si el caché dinámico no se activa en cPanel, incluso si su complemento se activa, incluso si ofrece el encabezado correcto, el caché no funcionará. Una parte de la funcionalidad más reciente del complemento es probar si está en caché o no, porque es importante asegurarse de que el servicio se esté ejecutando.
No proporcionamos contenido de caché a los usuarios conectados, la idea de que si está conectado a su sitio web, debe ver contenido dinámico cien por ciento.Esta es una de esas cosas que hemos hecho especialmente para comprar carros y amigos y para las personas que desean tener redes sociales dinámicas o cualquier otra cosa.Entonces, si está autenticado, verá contenido dinámico cada vez.Fred: Pensando desde el punto de vista de un desarrollador que no es tan hábil en términos de almacenamiento en caché, los recursos que generalmente observo en caché suelen ser archivos de imagen y archivos: estas son cosas que los cumplen en caché.Parece ser la capa estática que memoriza esos recursos.
Hristo: Sí, el estático seguro. Fred: Entonces, cuando lo purificas, purifica las tres capas? HRISTO: Sí, purifica todo para ese nombre de dominio. Si ve el texto actualizado y todavía ve la imagen anterior, significa que es un caché estático. Si toda la página es antigua, significa que se activa el caché dinámico. Auto-Purging y WordPress ganchan una de las cosas principales que hace el complemento es la funcionalidad de la purificación automática o el lavado automático. Monitoreamos diferentes eventos en su sitio web de WordPress. Luego eliminamos el caché, desafortunadamente, hasta ahora, para todo el nombre de dominio, cada vez que detectamos que ha actualizado una publicación o página, ha instalado un complemento o cualquier otra cosa. El complemento debe saber cuándo eliminar el caché, por lo que creamos una lista de ganchos: función pública asigne_hooks add_action (‘edit_post’, array ($ this, ‘Hook_add_post’)); add_action (‘publish_phone’, array ($ this, ‘thook_add_post’)); add_action (‘publish_future_post’, array ($ this, ‘thook_add_post’)); add_action (‘xmlrpc_publish_post’, array ($ this, ‘thook_add_post’)); add_action (‘antes_delete_post’, array ($ this, ‘thook_elete_post’)); add_action (‘tash_post’, array ($ this, ‘thook_elete_post’)); add_action (‘add_category’, array ($ this, ‘thook_add_categy’)); add_action (‘edit_category’, array ($ this, ‘Hook_edit_categy’)); add_action (‘delete_category’, array ($ this, ‘thook_elete_categy’)); add_action (‘

add_link ‘, array ($ this,’ thook_add_link ‘)); add_action (‘edit_link’, array ($ this, ‘Hook_edit_link’)); add_action (‘delete_link’, array ($ this, ‘thook_elete_link’)); add_action (‘comment_post’, array ($ this, ‘Hook_add_comment’), 10.2); add_action (‘comment_unaAppRoved_to_approved’, array ($ this, ‘Hook_approve_unapprove_comment’); add_action (‘comment_approved_to_unapproved’, array ($ this, ‘Hook_approve_unapprove_comment’)); add_action (‘delete_comment’, array ($ this, ‘thook_delete_comment’)); add_action (‘tash_comment’, array ($ this, ‘thook_delete_comment’)); add_action (‘switch_theme’, array ($ this, ‘Hook_switch_theme’)); add_action (‘personalize_save’, array ($ this, ‘Hook_switch_theme’)); add_action (‘automáticamente add_action (‘Future_to_publish’, Array ($ this, ‘Scheduled_Goes_Live’)); add_action (‘_core_updated_succesfully’, array ($ this, ‘core_update_hook’)); Fred: ¿Es esta una lista de cosas que conducirán a la limpieza de caché?
HRISTO: Sí, estos son los ganchos que monitoreamos. Cache y Chron trabajan Los cronismos internos de WordPress son algo divertido para trabajar. Esta fue una historia divertida aquí: dentro de WordPress, los mecanismos internos de Chron son algo divertido para trabajar. Tuve problemas cuando la gente programó una publicación. Lo que sucedió hace un año, lo resolví hace mucho tiempo, pero lo que sucedió es que, por ejemplo, escribes una nueva publicación, completas tu publicación y luego programas para ser publicado mañana. Entonces, desconecte del sitio y vaya de vacaciones. El interno WordPress Chron funciona cuando hay acceso a cualquier página: el archivo wp-cron.php verifica si WordPress debe realizar o no tareas programadas. Lo hicieron porque realmente no pueden confiar en cada entorno de alojamiento que tenga trabajos de Chron disponibles. Por lo tanto, se basa en el hecho de que alguien accederá a la página y que el archivo PHP se incluirá y ejecutará, y luego WordPress verificará si sus publicaciones deben estar en vivo o no. La cuestión es que cuando memorizamos todo el sitio en caché y cuando los visitantes comienzan a cargar esas páginas, reciben el contenido almacenado en caché de estas páginas. Su solicitud nunca llega al servidor web y nunca llega al servicio PHP. Entonces, el archivo wp-cron.php nunca se ejecuta. Fred: Entonces, las personas programaron publicaciones que simplemente nunca fueron publicadas. Hristo: Sí. A menos que alguien publique un pedido que desencadena el caché. Lo que hice es excluir por completo el archivo wp-cron.php en el caché, para que golpeara cada vez;
Y agregué este gancho que nos dice cuándo llegó una publicación en la fecha de publicación.Entonces las dos cosas resolvieron este problema.Esta es una de esas cosas que no podríamos haber pensado inicialmente cuando comenzamos.Es por eso que todos los comentarios que recibimos son realmente importantes para nosotros.Siempre lo monitoreamos.Por ejemplo, uno de nuestros clientes solicitó el botón “Eliminar caché” en la barra de autenticación aproximadamente dos semanas antes de publicarlo y dijimos: “Sí, tiene mucho sentido, déjame igualarlo en algún lugar.En el programa ”, y la próxima semana fue la nueva versión.
Enviar comandos de purga a Nginx Fred: ¿Cómo se dice solo al caché? Hristo: Envíe un encabezado para limpiar el nombre de dominio y la memoria de caché. Y Ningx lo consigue y lo limpia. David: Entonces, en la IP del servidor, que encuentra en una ruta de archivo … Cristo: Confiamos en esto para obtener la dirección IP del servidor Varnish para NGINX. Recientemente pasé de Varish a Ningx. Utilizamos la varía como proxy opuesto para la memorización dinámica en caché, pero hemos apelado a Ningx por algunas razones, lo más importante es que Vernis no memoriza las aplicaciones HTTPS en caché. No memoriza las páginas con SSL en caché, o al menos la versión de varía gratuita no. A Ningx le está yendo bastante bien. Esta es probablemente una de las principales razones. Otra es que eventualmente nos moveremos del barniz a Ningx. No estoy seguro de cuándo sucederá esto, pero es algo con lo que vamos antes. Fred: ¿Puedes contarnos sobre estas funciones Fopen ()? HRISTO: Así es como hablas con cualquier servidor. Simplemente abra una conexión de socket y diga: “Hola, golpea esta área y elimina el caché”. Fred: ¿Qué es una salida? HRISTO: Deberías haber invitado a alguien que prefiera hablar más sobre PHP, un tipo importante de zend. [Risas] Abre una conexión de socket y envía su pedido al servicio Nginx. Todo funciona sobre la base de los encabezados. Creación de un complemento de caché para muchos casos de uso de WordPress Me gustaría poder limpiar la página por página, pero hay demasiados casos marginales en WordPress. Fred: ¿Por qué no limpiar una página? Hristo: Hay muchos casos de borde;

La gente usa WordPress de muchas maneras que no puedes cubrir todo. Me gustaría poder eliminar el caché para una sola página, porque si actualiza una sola página y borra el caché para esa página, todas las demás páginas continuarán siendo atendidas desde el caché y reducirán significativamente el servidor. Sus visitantes serán aún más felices porque cargarán el contenido mucho más rápido. Sin embargo, hay millones de cosas que debe considerar. Por ejemplo, si escribe una nueva publicación, actualizaré su página de índice: es una idea simple. Actualizaré su página de publicación, una idea simple, pero ¿qué sucede si tiene un widget “las últimas publicaciones”? ¿Cómo detectaré qué URL tiene ese contenido para cambiar? Entramos en cosas más difíciles, como el modelo DSI, donde puede excluir diferentes piezas de caché usando comentarios HTML. Nuevamente, esto requerirá mucho trabajo manual;
En realidad no podemos activarlo para todos. Pero esto es algo en nuestra lista que nos gustaría poder hacer en el futuro, para permitirle usar un comentario HTML simple en su índice o cualquier otro código, para decir “excluir del caché”. Entonces tendría una página de caché, luego un widget completamente dinámico, por ejemplo. Equipo de desarrollo de Fred: Cuéntanos un poco sobre el equipo que trabaja en ello. HRISTO: El servicio es administrado por nuestro equipo operativo, que son los que codifican cosas del servidor: hacen parches de núcleo, codifican nuestros propios servicios para monitorear copias de seguridad, tales cosas. Esos tipos son muy inteligentes y son muy buenos desarrolladores. Son siete u ocho de ellos y no solo trabajan en el servicio de almacenamiento en caché, sino que trabajan en cualquier cosa a nivel de servidor. Si hay una nueva versión de PHP, por ejemplo, es su trabajo ponerla a disposición. Recientemente cambiamos el diseño del complemento y lo hicimos receptivo, y uno de nuestros diseñadores nos ayudó a este respecto. Luego tenemos alrededor de diez desarrolladores que trabajan solo en nuestra funcionalidad frontal, sistemas internos como la facturación, etc. Cualquier cosa más complicada, puedo confiar en ellos. Entonces soy yo. Entonces es un esfuerzo combinado, no soy solo yo. Muchas personas contribuyen al complemento. Configuración de configuración inteligente predeterminada “Su complemento es tan bueno como los valores predeterminados”. Fred: Cachepress ha hecho que la transición sea una de las muchas cosas que realmente me encantan al alojar en el sitio. Solo creo que hubo un gran arco para mejorar la interfaz de uso para esto en el último año. Hristo:
Gracias.Hice mucho esfuerzo en él.El año pasado, en WordCamp Europe, fue esta buena discusión sobre Yoast.En general, dijo que “su complemento es tan bueno como los valores predeterminados”.Cuando trabaja en una empresa de alojamiento, tiene esta maravillosa perspectiva sobre tantos problemas que la gente toca todos los días.Muchas personas tienen problemas para configurar complementos con muchos botones, configuraciones, cuadros de selección, desplegable.Si da una solución a un público en general y desea que haga todo tipo de configuraciones, aumente drásticamente la oportunidad de romper algo.Es por eso que, por ejemplo, cuando se usa nuestro programa de instalación de WordPress de un solo clic, se activa el complemento.No agregamos otros complementos, solo supercate;

Está allí, activado, el lavado automático se activa de forma predeterminada y el caché dinámico se activa de forma predeterminada. Uno de nuestros principales objetivos es hacer esto lo más simple posible y lograr un aumento del rendimiento. Conclusión David: Esta capa adicional de Nginx entre ellos agrega cierta complejidad de la lógica de purga. Pero una vez que haya dominado esa interfaz, es simple y, como dijo Fred, hay un botón nuclear. Es una gran experiencia y es el caché más rápido que puedes imaginar por el precio. HRISTO: Sí, ahora no puedo pensar en algo más rápido que cargar una pieza HTML estática de la memoria del servidor. Cuando vengo con algo más rápido que RAM, consideraremos almacenar contenido en caché. El resto de la ecuación de velocidad es el volumen total de su contenido, el número de solicitudes y la conexión física con la red entre usted y su servidor Fred: Hristo, muchas gracias por guiarnos a través del complemento y gracias por explicarnos ¿Cómo se mira el almacenamiento en caché en general? Es muy divertido hablar contigo. Hristo: Gracias, fue un placer estar aquí contigo.

Copyright statement: Unless otherwise noted, this article is Collected from the Internet, please keep the source of the article when reprinting.

Check Also

gkOVSBm5B8SgiXmo

Shopify vs WooCommerce – ¿Cuál es la mejor plataforma?(Comparación)

Shopify vs WooCommerce

Leave a Reply

Your email address will not be published. Required fields are marked *