# Dónde ubicar la compresión en una infraestructura Cloudflare a Nginx Proxy Inverso a Nginx Backend

- Link: https://binariocero.com/articulos/donde-ubicar-la-compresion-en-una-infraestructura-cloudflare-a-nginx-proxy-inverso-a-nginx-backend
- Published: 2026-01-06T13:15:46+01:00
- Author: Juan José Fernández Durán

![Loading](https://binariocero.com/wp-content/plugins/page-views-count/ajax-loader-
2x.gif)

En arquitecturas modernas con CDN y múltiples capas de proxy, la ubicación de la
compresión es tan importante como la compresión en sí. Una mala decisión puede provocar
doble compresión, ineficiencia de caché y consumo innecesario de CPU.

Este artículo define la ubicación correcta de la compresión en una infraestructura
con **Cloudflare, un Nginx proxy inverso y un Nginx backend**.

## Topología de referencia

    ```wp-block-code
    Cliente
    ↓
    Cloudflare (CDN)
    ↓
    Nginx Proxy Inverso
    ↓
    Nginx Backend
    ```

## Rol de cada capa

### Cloudflare

 * Terminación TLS
 * Brotli / Gzip
 * Caché global
 * Optimización de contenido

### Nginx Proxy Inverso

 * Control de cabeceras
 * Caché intermedia (`proxy_cache`)
 * Seguridad y rate limiting

### Nginx Backend

 * Generación de contenido
 * Lógica de aplicación
 * Acceso a recursos internos

## Ubicación correcta de la compresión

### Compresión habilitada en:

 * **Cloudflare** (Brotli/Gzip)
 * **Nginx proxy inverso** (Gzip como fallback)

### Compresión deshabilitada en:

 * **Nginx backend**

## Justificación técnica

 1. Cloudflare siempre descomprime y recomprime el contenido.
 2. La compresión en el backend no llega al cliente final.
 3. Se evita la doble compresión y el desperdicio de CPU.
 4. La caché funciona mejor sin múltiples variantes de `Accept-Encoding`.
 5. El proxy inverso es el último control interno antes del CDN.

## Configuración recomendada por capa

### Cloudflare

 * Brotli: **Activado**
 * Auto Minify: Opcional
 * Rocket Loader: Desactivado en WordPress

### Nginx Proxy Inverso

 * Gzip: **Activado**
 * Brotli: **No necesario**

### Nginx Backend

 * Gzip: **Desactivado**
 * Brotli: **Desactivado**

## Validación del diseño

### Desde Internet

    ```wp-block-code
    curl-I https://dominio
    ```

Debe devolver:

    ```wp-block-code
    Server: cloudflare
    Content-Encoding: br|gzip
    ```

### Desde el proxy al backend

    ```wp-block-code
    curl-I http://backend
    ```

No debe aparecer `Content-Encoding`.

## Conclusión

La compresión debe habilitarse **una sola vez**, en el punto más cercano al cliente
que controle la salida del tráfico. En infraestructuras con Cloudflare, esto implica
delegar Brotli al CDN y usar Gzip únicamente en el Nginx frontal, manteniendo el
backend limpio y eficiente.
