Configurar Nginx caduca el encabezado de época de forma selectiva

Configurar Nginx caduca el encabezado de época de forma selectiva

Tengo una carpeta que contiene imágenes en mi servidor que se usa para dar servicio a una aplicación móvil, a través de una CDN, y para trabajar con una aplicación web backend que se usa para administrar el contenido entregado a la aplicación. Para este último, la aplicación web backend, quiero asegurarme de que el navegador no almacene en caché las imágenes entregadas desde la carpeta en cuestión para poder mostrar versiones actualizadas en la aplicación backend tan pronto como su autor las haya actualizado. La CDN extrae las mismas imágenes para enviarlas a la aplicación móvil y tiene su configuración de actualización a los 30 minutos para no entregar imágenes de contenido mal fechadas.

Mi pregunta: ¿cómo puedo configurar Nginx para que inyecte el expires epochencabezado solo para las solicitudes que se originan en la aplicación web? Parte de la respuesta a esta pregunta está eneste hilo SO. ¿Hay alguna manera de modificar la solución propuesta allí para que examine el referente antes de inyectar el encabezado? Entonces, por ejemplo, todas las solicitudes que se originan en https://example.com/backofficese responden con el expires epochencabezado, mientras que otras, por ejemplo, las que provienen de las solicitudes de extracción de CDN, no.

Respuesta1

Un simple ifdebería ser suficiente aquí:

server {

    location ... {

        if ($http_referer ~* ^https://example.com/backoffice) {
            expires epoch;
        }

    }

}

Tenga en cuenta que en general esvastamenteEs preferible que su aplicación web tome decisiones de almacenamiento en caché y responda con las directivas apropiadas.

información relacionada