Almacenar CSS/JS en caché de forma agresiva
Acelere los recursos con GET/HEAD, respuestas 200/301/302/304 y un TTL de 1 día o más; elimine los parámetros de seguimiento de campañas de la clave de caché.
Ayuda de CDN.com.tr
Configure la clave de caché de dominio/ruta, el TTL, métodos/estados, encabezados/cookies, optimización y reglas de límite de velocidad.
Caché, seguridad, WAF y purga
Configure la clave de caché de dominio/ruta, el TTL, métodos/estados, encabezados/cookies, optimización y reglas de límite de velocidad.
Estos ejemplos usan escenarios seguros de origen WordPress para archivos estáticos, cadenas de consulta, encabezados/cookies y rutas de sesión sensibles.
Acelere los recursos con GET/HEAD, respuestas 200/301/302/304 y un TTL de 1 día o más; elimine los parámetros de seguimiento de campañas de la clave de caché.
Omita el caché cuando esté presente una cookie de sesión o carrito; las rutas wp-admin y wp-login nunca deben entrar en el caché compartido.
Ignore Set-Cookie o Cache-Control para las decisiones de caché, oculte X-Origin-Debug/X-Powered-By a los usuarios y active la depuración ascendente solo temporalmente.
Para rutas tipo API, incluya en la clave de caché solo los parámetros de consulta que cambian el contenido y establezca un límite de solicitudes.
Reduzca la regla por dominio, protocolo y expresión regular de ruta antes de cambiar el comportamiento; las reglas amplias `/` necesitan revisión deliberada.
Mantenga los parámetros de consulta en la clave de caché solo cuando cambien el contenido; los parámetros de seguimiento generalmente se eliminan.
El contenido personalizado, de carrito y de administración debe omitir el caché; el contenido estático y anónimo puede recibir TTL.
Ignorar un encabezado de origen para las decisiones de caché es distinto de ocultarlo al cliente.
Los ajustes preestablecidos a nivel de cuenta definen el comportamiento general; Add Rule escribe el comportamiento preciso para un dominio/ruta.
Resultado esperado: Se abre el modal de la regla y la nueva regla se prepara dentro del alcance de la cuenta seleccionada.
cdnctl accounts list
export ACCOUNT_UUID=<selected_account_uuid>
cdnctl cdn advanced-rules list --account "$ACCOUNT_UUID" --format table
Estos campos determinan qué solicitudes coinciden con la regla; una expresión regular demasiado amplia puede cambiar todo el sitio.
Resultado esperado: La regla coincide únicamente con el nombre de host y las rutas de destino.
cat > rule-static-assets.json <<EOF
{"server_domain_names":["www.example.com"],"type":["http","http2"],"path_regex":"^/cdn-help/rules/(cache-demo\\.css|query-demo\\.json)$"}
EOF
cdnctl cdn advanced-rules validate --account "$ACCOUNT_UUID" --file rule-static-assets.json
Para archivos estáticos, elimine los parámetros de consulta de seguimiento de la clave de caché y conserve solo las variantes reales.
Resultado esperado: Los objetos CSS/JSON anónimos se almacenan en caché sin dividir el caché por parámetros de consulta innecesarios.
jq '. + {"cache_query_mode":"ignore_list","cache_query_params":["utm_*","gclid","fbclid","msclkid"],"cache_valid_time":"1 day","allowed_cache_methods":["GET","HEAD"],"allowed_cache_responses":["200","301","302","304"],"response_cache_times":{"200":"1 day","301":"1 week","302":"2 hours","304":"1 day"}}' rule-static-assets.json > rule-static-assets-cache.json
cdnctl cdn advanced-rules validate --account "$ACCOUNT_UUID" --file rule-static-assets-cache.json
Las rutas de administración, inicio de sesión, carrito y pago deben preservar el comportamiento del origen en lugar de devolver aciertos de caché.
Resultado esperado: Las solicitudes de sesión no devuelven contenido en caché compartido a otro usuario.
cat > rule-wordpress-sensitive.json <<EOF
{"server_domain_names":["www.example.com"],"type":["http","http2"],"path_regex":"^/(wp-admin|wp-login\\.php|cart|checkout)(/.*)?$","bypass":"on","bypass_by_cookie":"wordpress_logged_in\nwoocommerce_cart_hash\nwp_woocommerce_session_","limit":30,"per_time":10}
EOF
cdnctl cdn advanced-rules validate --account "$ACCOUNT_UUID" --file rule-wordpress-sensitive.json
Decida por separado si los encabezados de origen afectan las decisiones de caché y si se exponen a los navegadores.
Resultado esperado: Los encabezados de origen se controlan de forma deliberada y la depuración no queda activada en el tráfico de producción.
jq '. + {"ignore_headers":["Cache-Control","Set-Cookie"],"hide_headers":["X-Origin-Debug","X-Powered-By"],"custom_headers":"X-Forwarded-Host: $host\nX-CDN-Rule-Debug: temporary","debug_upstream_headers":true,"image_optimization":"on","white_space":"on"}' rule-static-assets-cache.json > rule-headers-debug.json
cdnctl cdn advanced-rules validate --account "$ACCOUNT_UUID" --file rule-headers-debug.json
Como Save puede activar el flujo de aplicación en vivo, la verificación final se basa en ruta/dominio/TTL/encabezado.
Resultado esperado: Después del éxito de la operación, las solicitudes coincidentes muestran el nuevo comportamiento de caché/encabezado/límite de velocidad.
cdnctl cdn advanced-rules create --account "$ACCOUNT_UUID" --file rule-headers-debug.json
cdnctl operations list --account "$ACCOUNT_UUID"
curl -I "https://www.example.com/cdn-help/rules/cache-demo.css?utm_source=test"
curl -I -H "Cookie: wordpress_logged_in=redacted" "https://www.example.com/wp-admin/"
El área de administración/carrito de WordPress evita el caché mientras los recursos estáticos y las rutas JSON anónimas se almacenan en caché de forma deliberada.
Use los registros de WAF para explicar el tráfico bloqueado o desafiado sin exponer los sistemas de registro internos.
Purgue una ruta, una ruta guardada o toda la cuenta y separe el caché del CDN del caché del navegador.
Use el encabezado de respuesta X-Proxy-Cache-MT para ver exactamente qué hizo el CDN con una solicitud y verificar que el caché funciona como se espera.