Antes de hablar de caché web, hablemos de CDN, una red de distribución de contenidos (CDN) es una red distribuida construida y cubierta sobre una red portadora, compuesta por flotas de servidores de nodos edge de todo el mundo. La CDN puede compartir la presión sobre el servidor de origen, evitar la congestión de la red, asegurar la distribución del contenido web en diferentes regiones y escenarios, y mejorar la velocidad de acceso a los recursos. CDN almacena en caché los recursos del servidor de origen en los nodos de aceleración de IDC de todo el mundo, de modo que cuando los usuarios finales soliciten acceso y obtengan recursos del servidor de origen, puedan obtener los recursos almacenados en caché en nodos de CDN cercanos, mejorar la velocidad de acceso a los recursos y compartir la presión sobre los servidores de origen.
Como se muestra en la siguiente figura:
En pocas palabras, cuando los usuarios acceden a algunos recursos estáticos, no los obtendrán del servidor de origen tras usar la CDN, sino que encontrarán el servicio CDN más cercano al usuario actual mediante cálculos y retorno de datos.
Los valores de caché web son un servicio entre el usuario y el servidor de origen, y Nginx proporciona capacidades de caché web de forma nativa. Otros incluyen Varnish, Squid y Cachewall, que son proxies de caché web (algunos de los cuales no solo proporcionan caché web).
Sobre la documentación de configuración de la caché de Nginx:El inicio de sesión del hipervínculo es visible.
Primero, cuando accedemos por primera vez a un recurso a través de un servicio de caché, el estado de caché esSEÑORITA, solicitará al servidor de origen que lo extraga, como se muestra en la figura siguiente:
Cuando accedemos al recurso por segunda vez, veremos que el recurso ha sido almacenado en caché y el estado esGOLPE, como se muestra en la figura siguiente:
Los principales parámetros de configuración de Nginx son los siguientes:
Parámetros principales:
proxy_cache_path/data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=180d use_temp_path=off;
●path: Un parámetro obligatorio que especifica la ruta de almacenamiento de archivos en caché. ●levels: Define la jerarquía del directorio de caché. Cada capa puede representarse con 1 (hasta 16 opciones, 0-f) o 2 (hasta 256 opciones, 00-ff), separadas por : en el centro. proxy_cache_path /data/nginx/cache; Esto significa que todas las cachés tienen un solo directorio, como /data/nginx/cache/d7b6e5978e3f042f52e875005925e51b proxy_cache_path /data/nginx/niveles de caché=1:2; Esto significa que la caché es un directorio de segundo nivel (con 16*256=4096 directorios), como /data/nginx/cache/b/51/d7b6e5978e3f042f52e875005925e51b ● keys_zone: Parámetro obligatorio, define el nombre y tamaño del área de memoria compartida, que se utiliza para almacenar los metadatos del elemento de caché (todas las claves activas e información relacionada con los datos en caché), de modo que nginx pueda determinar rápidamente si una petición llega o no a la caché, 1m puede almacenar 8000 claves, 10m puede almacenar 80000 claves, 10m puede almacenar 80000 llaves. ●inactivo: Elimina archivos de caché que no han sido accedidos dentro del tiempo especificado, por defecto durante 10 minutos. ●max_size: Se establece el límite superior de almacenamiento en caché y, si no se especifica, todo el espacio en disco se utilizará como máximo. ● use_temp_path: Coloca archivos temporales directamente en el directorio de caché.
proxy_cachemy_cache; #指定用于页面缓存的共享内存, el nombre de la zona se define mediante proxy_cache_path directiva
proxy_cache_min_uses1; ## estipula el umbral de caché, cuántas veces se almacena en caché la petición, y no almacena en caché las solicitudes de baja frecuencia para evitar desperdicios.
proxy_cache_valid200 3m; #为不同的响应状态码设置不同的缓存时间, esta es una solicitud con un código de estado de caché de 200 y una duración de caché de 3 minutos
proxy_cache_key$request_uri; #指定缓存文件的key为请求的URI
add_headerNginx-Cache-Status $upstream_cache_status; #把缓存状态设置为头部信息, responder al cliente
proxy_passhttp://webservers; #设置代理转发的后端服务器的协议和地址
Utiliza un proxy de caché de Nginx para ignorar las cadenas de consulta
(Fin)
|