如何过滤服务器上相同的重复请求

如何过滤服务器上相同的重复请求

我注意到我的 Django 应用程序有时会进行两次数据库查询,而不是一次。日志文件显示两个类似的请求(几乎)同时发生。

例子:

[pid: 749|app: 0|req: 892/2837] x.x.x.x () {44 vars in 896 bytes} [Fri Sep  9 12:00:55 2016] GET /clinic_profile/61 => generated 0 bytes in 1 msecs (HTTP/1.1 301) 3 headers in 134 bytes (1 switches on core 0)
[pid: 750|app: 0|req: 659/2838] x.x.x.x () {44 vars in 898 bytes} [Fri Sep  9 12:00:55 2016] GET /clinic_profile/61/ => generated 84989 bytes in 374 msecs (HTTP/1.1 200) 3 headers in 102 bytes (1 switches on core 0)

这是我的系统的一个严重缺陷,我需要尽快修复它。

问题:我如何过滤重复请求?

我使用 Django、Nginx 和 Ubuntu 14.04

答案1

它看起来不像是双重数据库查询,而是从到/clinic_profile/61的301 重定向/clinic_profile/61/(它添加了尾随斜杠)

答案2

对于读取流量,在数据库前面使用缓存可以防止数据库执行重复查询。Django 有一个缓存框架:

https://docs.djangoproject.com/en/1.10/topics/cache/

相关内容