Welcome! Log In Create A New Profile

Advanced

Re: Setting expires header bypasses app server

April 02, 2009 03:41PM
On Thu, 2009-04-02 at 11:20 -0700, Michael Shadle wrote:
> That's because it is hitting the location ~*
> \.(js|css|jpg|jpeg|gif|png)$ { first
>
> try this (until Igor comes up with something better)
>
>
> location ~* \.(js|css|jpg|jpeg|gif|png)$ {
> if (!-f $request_filename) {
> proxy_pass http://thins;
> break;
> }
> if (-f $request_filename) {
> expires max;
> break;
> }
> }

You probably don't need a separate test to set the Expires header:

location ~* \.(js|css|jpg|jpeg|gif|png)$ {
expires max;
if (!-f $request_filename) {
proxy_pass http://thins;
}
}

The backend should supply its own Expires header that overrides the
Nginx one (or perhaps Nginx doesn't set Expires for proxied requests -
I haven't specifically tested to see which it is). In any case, this
has worked fine whenever I've used it (you can check the wiki headers,
which has expires 30d set on / before passing to mediawiki).

And I'd probably use something like this in any case (I've never used
try_files, but this looks right):

location ~* \.(js|css|jpg|jpeg|gif|png)$ {
expires max;
try_files $request_filename @thins;
}

location @thins {
proxy_pass http://thins;
}

And as a side note, getting rid of the regex would be a lot more
efficient. I'd consider making a special location for these files so
you could avoid the need for that.

Cliff


> I don't know if the braces got aligned properly but that general idea.
>
> On Thu, Apr 2, 2009 at 10:41 AM, nmk <nginx-forum@nginx.us> wrote:
> >> It's because it is matching that regexp first.
> >>
> >> You could do your if (-f ) check inside of there
> >> and it would probably
> >> work, but that's kind of messy.
> >
> > I am doing a -f check in the location. Still doesn't work as I expect it to.
> >
> > Could you provide an example please?
> >
> >> I'm sure Igor can
> >> post and give you a
> >> much cleaner way to do the entire thing.
> >
> > I hope so. :-) I still haven't got it working.
> >
> > Best,
> > Nickolay
> >
> > Posted at Nginx Forum: http://forum.nginx.org/read.php?2,700,755#msg-755
> >
> >
> >
>
Subject Author Posted

Setting expires header bypasses app server

nmk April 01, 2009 06:34AM

Re: Setting expires header bypasses app server

mike April 01, 2009 01:06PM

Re: Setting expires header bypasses app server

nmk April 02, 2009 01:41PM

Re: Setting expires header bypasses app server

mike April 02, 2009 02:20PM

Re: Setting expires header bypasses app server

Cliff Wells April 02, 2009 03:41PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 300
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