puerto apache reescribir a nginx

Tengo nginx actuando como un proxy inverso para apache.

Tengo un directorio de activos con archivos estáticos que está siendo atendido por nginx

location /assets {
  alias   /var/public/assets;
  expires     1h;
}

Sin embargo, algunos de los jpegs servidos desde ese directorio tienen un formato particular, es decir

/assets/test.jpg?p=2&project=wert

Quiero que nginx reescriba estas URL para que sean procesadas por el servicio de backend

Tengo la siguiente reescritura de apache que hace lo que quiero

RewriteEngine On
RewriteCond %{QUERY_STRING} q=[0-9]{1,2}&project=(\w+)$
RewriteRule ^assets/(.*)\.(jpe?g)$ /process/assets/$1.$2 [L]

¿Cuál es el equivalente de nginx y debería ponerlo en la directiva de ubicación anterior o en otro lugar?

Muchas Gracias

preguntado el 22 de mayo de 12 a las 12:05

1 Respuestas

if ($query_string ~ "q=[0-9]{1,2}&project=(\w+)$"){
    rewrite ^/assets/(.*)\.(jpe?g)$ /process/assets/$1.$2 break;
}

contestado el 22 de mayo de 12 a las 13:05

Intentare gracias. ¿Esto residirá dentro de la directiva de ubicación que menciono? - Thomas

Si no es así, cambie "descanso" por "último". Existe una solución más elegante con solo reescribir, si esto no funciona, lo escribiré. - Dmitri Verhoturov

Hola. Lo probé y nginx se queja: "alias" no se pudo usar en la ubicación "/assets" donde se reescribió el URI - Thomas

Lo moví fuera del bloque de ubicación y parece estar funcionando. Probaré un poco más - Thomas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.