如何限制 graphene-django 中的查询?有没有可以在 graphene-django 中使用来限制查询的包。
问问题
390 次
2 回答
1
一种选择是在 Web 服务器上进行查询限制,并将 django 和石墨烯排除在外。例如,如果您使用 nginx 和 uwsgi,并且您的石墨烯端点是,/api
您可以将其添加到您的 nginx 配置中:
location = /api/ {
limit_rate_after 500k;
limit_rate 50k;
uwsgi_pass django;
include /path/to/uwsgi_params;
}
限制大于 500k 的查询。Nginx 还有其他配置参数需要根据客户端进行限制——参见https://www.nginx.com/blog/rate-limiting-nginx/和https://docs.nginx.com/nginx/admin-guide/security-控制/控制访问代理-http/#limit_rate
实现起来非常简单,但是如果您需要基于使用多个客户端的单个客户进行节流,这种方法将不起作用。
于 2019-05-06T18:54:02.493 回答
0
另一种选择可能是使用django-throttle-requests,它允许您配置视图级限制规则。特别是graphene-django
可以在您的 URL 中使用。
另一方面,Django Rest Framework 提供了一组有据可查的节流功能,这些功能在视图级别也很方便。
于 2020-06-21T21:37:48.810 回答