之前我们公司有一个页面是处于内存缓存系统的保护的,缓存的规则就是根据请求的 uri 部分进行缓存,但是不关心参数部分。
突然有一天,缓存命中率下降的很厉害,而且后端页面的负载也飙高了。
查了好久,终于找到是因为一条不规范的nginx配置导致的:
1 | location /xxx { |
这段配置会导致,爬虫访问 /xxx/not_found 的任何目录,都直接重写成 /yyy/not_found 从而送到后端,导致缓存击穿
不要用执行上的勤奋来掩盖思考上的懒惰
之前我们公司有一个页面是处于内存缓存系统的保护的,缓存的规则就是根据请求的 uri 部分进行缓存,但是不关心参数部分。
突然有一天,缓存命中率下降的很厉害,而且后端页面的负载也飙高了。
查了好久,终于找到是因为一条不规范的nginx配置导致的:
1 | location /xxx { |
这段配置会导致,爬虫访问 /xxx/not_found 的任何目录,都直接重写成 /yyy/not_found 从而送到后端,导致缓存击穿