Openstack : 11、openstack中api-paste配置项的解释

参考blog:

http://www.aboutyun.com/thread-10232-1-1.html

http://blog.csdn.net/Jmilk/article/details/52081748


api-paste.ini是web服务框架的配置文件。
1 Pasete Deployment:在应用WSGI Application和Server提供联系,用户
调用loadapp方法可以使用现有WSGI Application

2 Paste Deployment中section描述
[app:name] : app section定义了符合wsgi协议的应用Application
例子:
#指向另外一个配置文件中的Application
[app:myapp]
use = config:another_config_file.ini
#指向一个URL
[app:myotherapp]
use = egg:MyApp
#直接指向具体的python代码(在cinder中,应用的就是这种定义的section方式)
[app:myfifthapp]
paste.app_factory = myapp.modulename:app_factor

解释:
app实现主用功能的Application。app是可调用对象类型,接收参数(environ,start_response),
是WSGI Server交给Application的符合WSGI规范的参数。
处理过程:Application响应environ的请求,准备好响应头headers和消息body,交给start_response
处理,返回响应消息体。
例如:
[app:gnocchiversions]
paste.app_factory = gnocchi.rest.app:app_factory
root = gnocchi.rest.VersionsController

[app:gnocchiv1]
paste.app_factory = gnocchi.rest.app:app_factory
root = gnocchi.rest.V1Controller
解释:
paste.app_factory:通过哪个函数创建application

3 [composite:name]
composite section定义了Application ,表示将一个请求调度定向
(dispatched) 到多个,或者多个应用上。可包含多个wsgi application。
Request中进来后第一个通过的Section。
例子:
[composite:gnocchi+auth]
use = egg:Paste#urlmap
/ = gnocchiversions
/v1 = gnocchiv1+auth
解释:
use : 关键字,指定处理请求的待阿,表示使用Paste egg包中urlmap来
实现composite方式。
/ , /v1: urlmap分发需要用到的参数,根据指定开头请求路由给对应pipeline
api_v1处理。


4 [filter:name]
定义过滤器,输入application,返回封装后的application。
例子:
[filter:cors]
paste.filter_factory = oslo_middleware.cors:filter_factory
oslo_config_project = gnocchi
[filter:keystone_authtoken]
paste.filter_factory = keystonemiddleware.auth_token:filter_factory
oslo_config_project = gnocchi

解释:
是一个实现了带过滤器功能的中间件(将Application封装),本质上是为了
过滤Request和Response。
例如需要对Reqyest进行身份验证,让这个Request提供身份验证的filter
paste.filter_factory: 表示调用哪个函数获得filter中间件。


5 [pipeline:name]
使用多个filter(管道实际是多个过滤器),提供key参数pipeline,后面的值
是列表最后以应用结尾。
例子:
[pipeline:main]
pipeline = gnocchi+auth
解释:
1)最后一个名字对应的section是app类型
2) 非最后一个名字对应的section是filter类型

整体处理过程:
1 composite将请求中的前缀( v2.0,v3)和Application(app/filter)映射,将request
转发到pipeline,
2 pipeline(包含filter和app)
3 filter(具体的Application 实现Reqyesr
4) app(具体Application实现Request)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值