nginx中handle模块开发总结1
2014-04-17 17:15
232 查看
之前用网上搜的hello world模块在机器上跑了一遍。然后今天按照自己的意愿把模块修改。然后遇到一些问题,现在总结一下:
(1)注意命名问题,即模块源代码文件命名以及源代码里面变量命令。刚刚开始出出现一个问题,就是连接成最后的二进制文件时,找不到我写的模块,然后看了下发现config文件中的模块命名与源代码中模块命名不一致。
(2)我要修改返回给用户的数据部分,这部分可以放在filter模块去操作,也可以在handler模块实现,即改变ngx_chain_t数据链即可,ngx_chain_t被申明为ngx_chain_s链表,可以在改链表的任何地方添加数据。添加数据即创建ngx_chain_t节点即可,然后连接到ngx_chain_s链表上,示例代码如下:
out.next = &out_time;//out_time是我创建的新的节点,并在里面填写数据
out_time.next=NULL;//注意改out_time变量buf成员赋值
(3)使用curl命令发请求测试,发现curl命令处理完之后一直在等待,仔细看了下是因为
r->headers_out.content_length_n 的值大于数据体中的数据大小,因此把该部分设置为与数据体数据部分大小一样的值即可。收到了的数据大小就等于content_length_n值。
(1)注意命名问题,即模块源代码文件命名以及源代码里面变量命令。刚刚开始出出现一个问题,就是连接成最后的二进制文件时,找不到我写的模块,然后看了下发现config文件中的模块命名与源代码中模块命名不一致。
(2)我要修改返回给用户的数据部分,这部分可以放在filter模块去操作,也可以在handler模块实现,即改变ngx_chain_t数据链即可,ngx_chain_t被申明为ngx_chain_s链表,可以在改链表的任何地方添加数据。添加数据即创建ngx_chain_t节点即可,然后连接到ngx_chain_s链表上,示例代码如下:
out.next = &out_time;//out_time是我创建的新的节点,并在里面填写数据
out_time.next=NULL;//注意改out_time变量buf成员赋值
(3)使用curl命令发请求测试,发现curl命令处理完之后一直在等待,仔细看了下是因为
r->headers_out.content_length_n 的值大于数据体中的数据大小,因此把该部分设置为与数据体数据部分大小一样的值即可。收到了的数据大小就等于content_length_n值。
相关文章推荐
- 总结一下最近Nginx模块开发走过的弯路
- Nginx 模块自主开发八: 总结 Nginx框架的流程
- Emiller的Nginx模块开发指南
- Nginx模块开发入门
- nginx 第3方模块echo代码阅读的问题总结
- Nginx基础知识. Nginx模块开发
- form 表单域的动态设计-customized tab information 模块代码开发总结(1)
- [若有所悟]日式项目模块开发主担当阶段性总结(一)
- nginx 模块开发 lua开发学习
- nginx模块开发0(hello world)
- nginx的模块开发
- Nginx模块开发---Nginx开发从入门到精通 读书笔记(三)---Nginx基本数据结构之 ngx_pool_t
- iOS开发 最近开发了蓝牙模块,在此记录总结一下
- 解剖Nginx·模块开发篇(3)ngx_http_hello_world_module 模块的基本函数实现
- Nginx模块开发入门
- Nginx服务模块开发
- Nginx基础. 开发HTTP过滤模块
- Nginx模块开发指南中文版
- nginx模块开发(三):upstream
- xposed模块开发步骤总结