Welcome! Log In Create A New Profile

Advanced

Re: Nginx bug when mixing map and try_files ?

Francis Daly
October 07, 2020 02:10PM
On Wed, Oct 07, 2020 at 06:50:30PM +0200, Marcin Wanat wrote:

Hi there,

> i am doing simple webp client support check using map and then using
> try_files to check if file exists and serve it.

$1 may not mean what you want it to mean, when more than one regex-thing
is involved. And "map" can be a regex-thing.

> location ~ ^/imgs/([0-9]*)/(.*)$ {
> add_header X-webp $webp_suffix;
> try_files /imgs/$1$webp_suffix
> /imgs/$1.jpg =404;
> }

If you change the location regex to whatever your engine's version of
"save this in a named variable" is, then use that named variable in the
try_files line, you may have better luck.

Perhaps:

location ~ ^/imgs/(?P<numbers>[0-9]*)/(.*)$ {

and use $numbers instead of $1.

> What am i missing ?
>
> 1) Why it does not serve .webp file at all ?
> 2) Why when try_files has webp check on first position it DO NOT serve .jpg
> file but 404 and when i swap order of parameters i DO serve .jpg ?

When nginx needs to know the value of $webp_suffix, the "map" is used,
which messes with your $1.

Then when nginx substitutes in the value of $1, it is not what it was
from the regex location.

So it all Just Works when $webp_suffix does not need to be read.

f
--
Francis Daly francis@daoine.org
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
Subject Author Posted

Nginx bug when mixing map and try_files ?

Marcin Wanat October 07, 2020 12:52PM

Re: Nginx bug when mixing map and try_files ?

Francis Daly October 07, 2020 02:10PM

Re: Nginx bug when mixing map and try_files ?

Marcin Wanat October 07, 2020 02:36PM

Re: Nginx bug when mixing map and try_files ?

Mr Alex October 07, 2020 02:44PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 326
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready