Sistema de caché para mi web en godaddy ?

  • Autor Autor InformaticaPC
  • Fecha de inicio Fecha de inicio
InformaticaPC

InformaticaPC

Delta
Programador
Hola de nuevo, a ver si alguien me podría orientar sobre cómo podría añadir un sistema de caché en godaddy.

Aunque supongo que es así, el caché ayuda a que se envíen más rápido los datos, pero tráfico va a haber igual, no es cierto ?

Gracias
 
el cache guarda en el disco duro de tu visitante, las imagenes, javascripts, texto plano, css, flash, etc de modo que cuando vaya a visitar tu web de nuevo, no tenga que descargarse todas esas cosas, sino que estan en el mismo pc de él. Solo sirves estos archivos a las visitas nuevas. ¿Que ganas con la cache? que consumas menos recursos como transferencia mensual y procesador o memoria del servidor.
 
Pero yo me refiero a una caché en el servidor, como el plugin de WordPress, en la parte cliente tengo claro que ya cada navegador tiene el suyo propio, no es así ?
 
Hola de nuevo, a ver si alguien me podría orientar sobre cómo podría añadir un sistema de caché en godaddy.

Aunque supongo que es así, el caché ayuda a que se envíen más rápido los datos, pero tráfico va a haber igual, no es cierto ?

Gracias

No existe un sistema de caché genérico, sino que cada CMS lo implementa a su forma. Por lo tanto, tendrías que decir que CMS estás usando para sugerirte el correspondiente. Si la aplicación es a medida lo tendrás que implementar tú.

el cache guarda en el disco duro de tu visitante, las imagenes, javascripts, texto plano, css, flash, etc de modo que cuando vaya a visitar tu web de nuevo, no tenga que descargarse todas esas cosas, sino que estan en el mismo pc de él. Solo sirves estos archivos a las visitas nuevas. ¿Que ganas con la cache? que consumas menos recursos como transferencia mensual y procesador o memoria del servidor.
También existe la cache a nivel de servidor. Esta consiste en no volver a generar lás paginas, sino tenerlas ya generadas y guardadas. Su función no es consumir menos transferencia, sino menos recursos de máquina (CPU y conexiones a la base de datos, etc.) y por lo tanto servir la web mucho más rápida.
 
Pues sí... es a medida con un servidor apache y usando php, lo veo complicado entonces. Gracias.
 
Pues sí... es a medida con un servidor apache y usando php, lo veo complicado entonces. Gracias.
Así, sin pensar mucho, yo lo montaría de esta forma:

- En una tabla metes tres campos: URL consultada, dirección donde has guardado el HTML (cache), fecha de caducidad de la copia en cache
- Cada página (php) ha de mirar en la tabla si existe esa URL en el primer campo y que la fecha de caducidad sea superior a la fecha actual.
- Si lo es, simplemente vuelca el fichero HTML a la salida.
- Si no lo es, genera el HTML y lo vuelca a la salida.

Este sería un esquema válido de un sistema de caché. La fecha de caducidad depende de tu web. Si permites comentarios, si es un foro, ... tendrás que poner mayor o menor margen.
 
Gracias Malenko, por lo que dices, entiendo la caché es para archivos dinámicos, y para .html no haría falta.

Yo por caché entiendo lo de tener las cosas (como módulos) de uso más frecuente ya precargadas en la memoria... pero claro eso para un hosting con cientos o miles de páginas no creo que sea muy óptimo...
 
Gracias Malenko, por lo que dices, entiendo la caché es para archivos dinámicos, y para .html no haría falta.

Yo por caché entiendo lo de tener las cosas (como módulos) de uso más frecuente ya precargadas en la memoria... pero claro eso para un hosting con cientos o miles de páginas no creo que sea muy óptimo...
Cuando se habla de caché se refiere a tener los datos ya procesados para evitar consumir recursos (del tipo que sean).

Cuando estamos hablando de la parte del cliente, lo que interesa evitar consumir es ancho de banda, por eso la cache consiste en no descargar elementos que estén en el PC.

En cambio, cuando hablamos a nivel del servidor, como no sabemos que tiene ya descargado el cliente, no podemos jugar con el factor ancho de banda, pero si podemos evitar consumir recursos de la máquina. En parte es como tu dices, si no tienes que volver a generar el html no has de volver a cargar los módulos que lo usan. Por ejemplo, para verlo más claro, imaginate un wordpress sin cache. Cuando visitas un post, ha de generar el texto del post y aplicarle todos los plugins que tengas instalados (que si galerias de imagenes, plugins de seo, plugins de post similares,etc.). En cambio, si el post lo tienes en una cache generado, te evitas no solo generar el texto del post, sino tener que cargar los plugins en memoria. Resumiendo, ahorras máquina porque no has de procesar tanto y memoria.

Lo de la "caché" digamos que es un concepto genérico, que depende de cada situación como se ha de aplicar ya que a veces te interesa consumir menos recursos de un tipo o de otro.
 
Saludos fbetas,

aqui os dejo un pequeño script php que quizas os sirva:

Primero creamos el archivo cache.start.php con el siguiente código:
PHP:
<?php
// ruta al directorio cache
$cache_directorio = '/var/www/vhosts/tudominio/httpdocs/cache/';//el directorio cache deberá tener permisos 777
// tiempo de expiración de la cache (segundos)
$cache_expiracion = 24 * 60 * 60;
// pagina php
$pagina = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
// fichero en el que se guardara la pagina cacheada
$cache_fichero = $cache_directorio . md5($pagina) . ".html";
if (@file_exists($cache_fichero)) {
  $cache_fichero_tiempo = @filemtime($cache_fichero);
  if ((time() - $cache_expiracion) <$cache_fichero_tiempo) {
	@readfile($cache_fichero);die();
  }
}
ob_start();
?>

Luego creamos el archivo cache.end.php con el siguiente código:
PHP:
<?php
if (file_exists($cache_fichero))
  unlink($cache_fichero);
// escribimos el fichero con el contenido cacheado
$fic = fopen ($cache_fichero, 'w');
@fwrite ($fic, ob_get_contents());
@fclose ($fic);
// volcamos la pagina
ob_end_flush();
?>

subimos los dos archivos, editados según nuestra dirección de la carpeta cache y creamos la carpeta cache (recordad, con permisos 777) y añadimos en las paginas que queremos cachear los siguientes codigos:

PHP:
<?php include("cache.start.php"); ?>
<html>
...
</html>
<?php include("cache.end.php"); ?>

Espero que te sirva o le sirva a alguien :top:

Bien, se me olvido añadir el código para hacer un flush y vaciar la cache. Tengo que añadir que esta función es BETA pues aun estoy trabajando en ello 😀

PHP:
<?php
function DelTodo("/var/www/vhost/tudominio/httpdocs/cache/*.html"){  
if (!is_dir($source) && !is_file($source) ){  
echo "No es un directorio o fichero";  
} else {  
$Orden = "rm -R $source" ;  
exec ($Orden);  
}  
}
?>
 
Última edición:
Atrás
Arriba