修改openstack的nova-api的ratelimit

来源:互联网 发布:python if not语句 编辑:程序博客网 时间:2024/05/22 04:45

由于之前在api请求在一定时间内次数过多的时候会出现拒绝的情况,返回的信息就是说ratelimit问题,那么我们根据官方文档的说法对api-paste.ini文件进行修改,官方的说法根据是这里http://docs.openstack.org/trunk/openstack-compute/admin/content/configuring-compute-API.html

说的是先增加

[pipeline:openstack_compute_api_v2] pipeline = faultwrap authtoken keystonecontext ratelimit osapi_compute_app_v2 [pipeline:openstack_volume_api_v1] pipeline = faultwrap authtoken keystonecontext ratelimit osapi_volume_app_v1 [filter:ratelimit] paste.filter_factory = nova.api.openstack.compute.limits:RateLimitingMiddleware.factory  


还有下面的

[filter:ratelimit] paste.filter_factory = nova.api.openstack.compute.limits:RateLimitingMiddleware.factory limits =(POST, "*", .*, 10, MINUTE);(POST, "*/servers", ^/servers, 50, DAY);(PUT, "*", .*, 10, MINUTE);(GET, "*changes-since*", .*changes-since.*, 3, MINUTE);(DELETE, "*", .*, 100, MINUTE) 


但是发现不行,根本服务重启都出问题,于是我就这样改了

我在[composite:openstack_compute_api_v2] 下面的keystone_nolimit加多一个ratelimit 变成

[composite:openstack_compute_api_v2]use = call:nova.api.auth:pipeline_factorynoauth = faultwrap sizelimit noauth ratelimit osapi_compute_app_v2keystone = faultwrap sizelimit authtoken keystonecontext ratelimit osapi_compute_app_v2keystone_nolimit = faultwrap sizelimit authtoken keystonecontext ratelimit osapi_compute_app_v2


还有就是在[filter:ratelimit] 加多一句 变成

[filter:ratelimit]paste.filter_factory = nova.api.openstack.compute.limits:RateLimitingMiddleware.factorylimits =(POST, "*", .*, 100, MINUTE);(POST, "*/servers", ^/servers, 500, DAY);(PUT, "*", .*, 100, MINUTE);(GET, "*changes-since*", .*changes-since.*, 300, MINUTE);(DELETE, "*", .*, 1000, MINUTE)


这样就行了 然后重启nova-api服务。