Hello!
2014-05-20 21:28 GMT-07:00 lanxin:
> 我content的内容比较大,大概有250k左右,我自己写的nginx模块里输出res.content时都可以完整的输出,但是用firefox查看时却绝大多数情况下每次只能显示35.9k的数据。
一个 nginx C 模块可以有一百万种不同的犯错方式。像上面这样三言两语的描述远不足以确定问题的所在。建议精确摸仿现成的 nginx C
模块的做法,照猫画虎。当然,更有意义的一个建议是尽量避免自己编写 nginx C 模块,因为这个世上没几个人能把 nginx C
模块真正写对,如果可能的话,尽量复用现成的 nginx C 模块,比如 ngx_echo 和 ngx_lua.
常见的一个原因是在请求结束之前没有输出 last_buf 标志,即缺少下面这一行调用:
rc = ngx_http_send_special(r, NGX_HTTP_LAST);
> 我尝试修改nginx配置文件为
>
> server_names_hash_bucket_size 128;
> client_header_buffer_size 512k;
> large_client_header_buffers 4 512k;
> client_max_body_size 300m;
>
这些配置都和你的问题没什么关系。
> 依然不起作用,多次刷新只能偶尔能够把所有的json内容完全返回。error.log显示出错为
> 2014/05/21 12:13:53 [alert] 15901#0: *259 writev() failed (14: Bad address),
貌似你没有把 ngx_buf_t 的 start 等字段正确地初始化。
Regards,
-agentzh