“ngx_http_subrequest”是否污染了响应?

时间:2018-05-08 11:25:01

标签: nginx

我在nginx的 ngx_http_auth_request_module 中找到了一个问题

nginx.conf

 <script type="text/javascript"> 
  $(function() {
     $('#iframe').load(function() {            
      if($.trim($(this).contents().find("body").html()) == "") {
         $(this).hide();
      }
     });
  });
 </script>
 <iframe id="iframe"></iframe>

来自nginx-1.11.5 / src / http / modules / ngx_http_auth_request_module.c的源代码:206

...
auth_request /auth;

location /auth {
    proxy_pass http://dev.auth.com:20007;
    ...
}
...

当我设置 sr-&gt; header_only = 0 时,浏览器会撤消一些无效数据。

数据是这样的

if (ngx_http_subrequest(r, &arcf->uri, NULL, &sr, ps,
                       NGX_HTTP_SUBREQUEST_WAITED)
    != NGX_OK)
{
    return NGX_ERROR;
}

/*
 * allocate fake request body to avoid attempts to read it and to make
 * sure real body file (if already read) won't be closed by upstream
 */

sr->request_body = ngx_pcalloc(r->pool, sizeof(ngx_http_request_body_t));
if (sr->request_body == NULL) {
    return NGX_ERROR;
}

sr->header_only = 1;

ctx->subrequest = sr;

字符串“false”是来自“proxy_pass http://dev.auth.com:20007;”

的回复

这个场景真的来自什么?如何将“sr-&gt; header_only”设置为0来获取有效数据。

0 个答案:

没有答案