Hello!
2015-02-11 2:37 GMT-08:00 Wu Bin:
> 第二个请求用capture调用第一个请求
> location /dsideal_yy/getInfo2 {
> local res = ngx.location.capture("/dsideal_yy/getInfo1"})
> local str = res.body
> ngx.print(str)
> }
>
这个配置示例里面有不止一个语法错误,显然并不能被 nginx 加载。
对于你的问题,你提供的信息过少,不足以作有价值的分析。
我有如下几个建议:
1. 检查 ngx.location.capture 返回的第一个 res 结果里的 truncated 字段(即
res.truncated)。很有可能的情况下你的子请求返回的确实是非法的或被截断的 HTTP 响应体。
2. 启用 nginx 调试日志,这样你可以看到更多的细节,当然如果你仍不能看出问题的话,可以提供问题请求对应的所有原始的调试日志消息(因为调试日志一般比较多,可以贴到
gist 等地方,然后再在邮件回复里贴 URL 链接)。
3. 提供一个最小化了的完整示例,以便我可以在我本地复现你看到的问题。
4. 如果你没有使用最新的 OpenResty 发布,建议升级之:
http://openresty.org/#Download
如果你并未使用 OpenResty 软件包,建议尝试之。
Regards,
-agentzh