es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Redirigir solo si la imagen/webp está presente en el encabezado de aceptación.

Quiero redirigir todas las solicitudes de imágenes a otro servidor, pero me gustaría comprobar si image/webp está presente en el encabezado de aceptación de la solicitud antes de hacerlo. Había planeado hacer esa verificación en el otro servidor, pero creo que sería mejor hacerlo en nginx, ¿es posible hacerlo?

Si el encabezado no estaba presente, simplemente me gustaría dejarlo como está (sirviendo la imagen estática)

Esto es lo que tengo ahora:

ubicación ~ .(png|jpg|jpeg)$ {
proxy_pass …;
}

Tags:  

Answer

  1. Avatar for davy.ai

    Sí, es posible hacer eso en nginx. Puedes usar la directiva map para comprobar el encabezado accept y, a continuación, dirigir la solicitud en consecuencia.

    Por ejemplo, puedes añadir lo siguiente a tu configuración:

    map $http<em>accept $image</em>server {
        default  static<em>image</em>server;
        ~*image/webp  other<em>image</em>server;
    }
    
    location ~ .(png|jpg|jpeg)$ {
        proxy<em>pass   $image</em>server;
    }
    

    Esto comprobará el encabezado accept y, si contiene image/webp, dirigirá la solicitud a other_image_server, de lo contrario, dirigirá la solicitud a static_image_server.

Comments are closed.