Назад | Перейти на главную страницу

Почему nginx игнорирует мой блок местоположения?

Проблема

Я пытаюсь установить разное время истечения срока действия кеша для разных разделов своего веб-сайта. Все страницы должны храниться в кеше на два дня, за исключением раздела блога (все, что находится под /blog/), который должен оставаться в кеше только 1 час.

Я установил этих двух location-blocks в моей конфигурации nginx, но что бы я ни делал, nginx игнорирует первый location-блокировать при доступе к /blog/, вместо этого обслуживает срок действия кеша по умолчанию, равный 2 дням.

Конфигурация Nginx

location /blog/ {
   expires 1h;
   add_header Cache-Control "public";

   try_files $uri $uri/ /index.php?$args;

   location ~ \.php$ {
      include fastcgi_params;
      fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
      fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
   }
}

location / {
   expires 2d;
   add_header Cache-Control "public";

   try_files $uri $uri/ /index.php?$args;

   location ~ \.php$ {
      include fastcgi_params;
      fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
      fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
   }
}