Alias with variable sometimes works and sometimes returns 404

bluesmoon nginx-forum at
Sat Jan 26 00:57:10 UTC 2013

I have the following in my server block:

    set $filename wizard-min;
    if($cookie_B) {
       set $filename $cookie_B;

    location ~* "^/b/([a-f0-9]{10})$" {
       default_type application/javascript;
       alias /var/www/b/b-$filename.js;
       sub_filter_types application/javascript;
       sub_filter '%replace%' '$1';

I request it using curl:

curl -v 'http://server/b/0123456789'

sometimes it returns the file correctly, and sometimes it returns a 404. 
When it does return a 404, the error log says:
"/var/www/b/0123456789" failed (2: No such file or directory)

Note that I'm testing this on a single server, and every request goes into
the access log file, but some of them (20-30%) return a 404.

If I take out the variable from the alias line, the file returns correctly
every time.

Any idea?

PS: Is there any way to get my code formatted correctly on this forum?

Posted at Nginx Forum:,235587,235587#msg-235587

More information about the nginx mailing list