Question

Leverage browser caching for Nginx

  • Posted July 28, 2014

I am trying to speed up my Wordpress site. On GTmetrix I am receiving a E(50) for Leverage browser caching.

I am trying to add the code below to my /etc/nginx/nginx.conf file

location ~*  \.(jpg|jpeg|png|gif|ico|css|js)$ {
        expires 365d;
    }location ~*  \.(pdf)$ {
        expires 30d;
}

Unfortunately any attempt at restarting nginx ends in a [fail]

Please help!

Subscribe
Share

A “location” directive can only reside inside a server or location block. Might want to check if this is the case :)

http://nginx.org/en/docs/http/ngx_http_core_module.html#location

2014/07/28 14:09:20 [emerg] 4250#0: “location” directive is not allowed here in /etc/nginx/nginx.conf:74

Can you check for the full error message in /var/log/nginx/error.log ?


Submit an answer
You can type!ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

You should add that inside of an existing server block. Usually that will be in /etc/nginx/sites-enabled/default

server {
    listen       80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    location ~*  \.(jpg|jpeg|png|gif|ico|css|js)$ {
        expires 365d;
    }

    location ~*  \.(pdf)$ {
        expires 30d;
    }
}

if you have more than one website create its xyz.conf file and then add this part /etc/nginx/sites-available/xyz.conf or /etc/nginx/conf.d/xyz.conf or wherever your path is

location ~*  \.(jpg|jpeg|png|gif|ico|css|js)$ {
    expires 365d;
}

location ~*  \.(pdf)$ {
    expires 30d;
}

different .conf file will help you to reduce the confusion

try running nginx -t.