1

I am having difficulty setting the HTTP expires headers for Nginx outside of specific server (and then location) blocks. What I want is to something like the following:

location ~* \.(png|jpg|jpeg|gif|ico)$ {
    expires 1y;
}

But not have to repeat it in every single server block, because I am hosting a large number of sites. I can put it in every server block, but it's not very DRY.

If I try to put that into an HTTP block or outside of all other blocks, I get "location directive is not allowed here." It seems I have to put it into a server block, and I have a different server block for every virtual host.

Any help/clarification would be appreciated.

1

Use include.

Make one new file, includes/gfx-expires-header.conf and put the directives there:

location ~* \.(png|jpg|jpeg|gif|ico)$ {
    expires 1y;
}

Then in every server block, you can just put include includes/gfx-expires-header.conf.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.