为什么 nginx 忽略我的位置块?

为什么 nginx 忽略我的位置块?

问题

我正在尝试为网站内的不同部分设置不同的缓存到期时间。所有页面都应缓存两天,但博客部分(下的所有内容/blog/)除外,该部分应仅缓存 1 小时。

我已经在我的 nginx 配置中设置了这两个location-block,但是无论我做什么,location当我访问 时,nginx 都会忽略第一个 -block /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;
   }
}

相关内容