Для работы этого способа нужно чтобы nginx был собран с модулем ngx_http_headers_module. Обычно так и есть, но если способ не сработал — проверьте, настроен ли nginx обрабатывать нужный тип файла и есть ли этот модуль.
Если у Вас apache БЕЗ nginx, то инструкция по его настройке вот тут

Настроить кеширование на стороне браузера статических файлов в nginx проще простого.

Нужно в файле конфигурации nginx (чаще всего это /etc/nginx/nginx.conf ) добавить всего две строки в блоке server  (к примеру, сразу после listen):

expires 168h;
add_header Cache-Control private;

В результате должно получиться что-то вроде:

server {
server_name site.com www.site.com;
listen ***.***.***.***;
expires 168h;
add_header Cache-Control private;

Всё. Теперь перезапустите nginx командой:

 service nginx restart

или

service nginx reload

В последнем случае — он просто перечитает конфиг без перезапуска.