Setting expires header bypasses app server
Cliff Wells
cliff at develix.com
Thu Apr 2 23:41:11 MSD 2009
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 at 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
> >
> >
> >
>
More information about the nginx
mailing list