- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TFS Nginx模块实现精选
Nginx-tfs实现2012.8.10明俨AgendaThe Big Picture配置和使用内部实现The Big PictureUpStreamDownStream/26配置和使用配置文件http#http 配置块tfs_upstream 03:6100;#rc_server 地址tfs_rc_zone size=128M;#rc所使用共享内存大小tfs_block_cache_zone size=256M; #本地block cache所使用共享内存大小tfs_poll_rcs lock_file=/home/xxx/nginx/logs/lk.file interval=10s timeout=3s enable=1; #rc keep-alive 使用的锁文件,时间间隔,超时时间,启用否tfs_send_timeout 3s;#向tfs server发送数据超时时间tfs_connect_timeout 3s;#连接tfs server超时时间tfs_read_timeout 3s;#从tfs server读数据超时时间tair_timeout 1s;#tair超时时间(连接/发送/接收数据)server#server 配置块tfs_keepalive max_cached=100 bucket_count=10;#连接池大小tfs_tackle_log “pipe:/usr/sbin/cronolog -p 30min /home/mingyan.zc/ngx_bin/logs/cronolog/%Y/%m/%Y-%m-%d-%H-%M-tfs_access.log;#配置tfs访问日志 tfs_net_device bond0;#配置使用的网卡(获取本地地址用于rc登录)location /#根location配置块tfs_pass enable=1;#是否启用tfs模块编译运行编译./configure --add-module=/home/path/to/mod_tair/tair_2/ --add-module=/home/path/to/mod_tfs --prefix=/home/path/to/ngx_bin/ --with-debugmakemake install运行./nginx停止./nginx -s stop重载配置文件./nginx -s reload/26内部实现ngx_tfs模块框架通用模块部分RESTful解析连接池TFS交互模块rc keep-alive模块本地block cacheJSON输出模块排重/26通用模块部分/26配置文件指令解析3个配置数据结构main_confsrv_confloc_conf生命周期和nginx进程周期相同设置Handler(请求入口)ngx_http_tfs_handler初始化timer(用于rc-keep-alive)Handler/26分配关键数据结构ngx_http_tfs_t从请求的pool中分配的生命周期和请求的生命周期相同RESTful解析解析URI解析操作对请求进行处理特殊请求:写文件请求(带body)RESTful解析URI解析协议版本v1:原生TFSv2:自定义文件名appkey关键词和文件名操作解析方法:GET/POST/PUT/DELETE/HEAD参数举例curl --data-binary @file_to_up 1:3900/v1/tfscom/26TFS交互模块/26状态机连接的读写事件ngx_http_tfs_read_handlerngx_http_tfs_send_handler内存管理pool中分配,无需显式释放发送/接收buf状态机读原生TFS文件自定义文件名目录操作/26状态处理流程RETRY_HANDLER(可选)typedef ngx_int_t (*tfs_peer_handler_pt)(ngx_http_tfs_t *t);/26连接读写事件/26写事件连接tfs server( ngx_event_connect_peer )发送tfs请求读事件接收tfs应答内存管理/26配置数据结构main_conf/srv_conf/loc_conf生命周期:nginx进程从pool中分配生命周期:请求共享内存生命周期:nginx进程接收bufHeader buffer(共用)每个连接有各自的body buffer处理buf overflow情况ngx_http_tfs_tngx_chain_tngx_chain_trecv_chainheader_buffertfs_peerbufnextbufnextngx_http_tfs_peer_connection_tpeerbody_bufferpo
文档评论(0)