<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hi,<div>In my module, I am trying to forward the request to my server based on the content of the request body. To acheive this, I've added a body capture filter to capture the body. My code is something like this...</div><div><br></div><div><div><font face="monospace, monospace">static ngx_int_t</font></div><div><font face="monospace, monospace">nginx_inspect_body_filter(ngx_http_request_t *r, ngx_chain_t *in)</font></div><div><font face="monospace, monospace">{</font></div></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">    ... // extract body</font></div><div><font face="monospace, monospace">    if (if_content_of_interest_in_body(body, body_length)) {</font></div><div><font face="monospace, monospace">        ngx_str_t uri = ngx_string("/my_location");</font></div><div><font face="monospace, monospace">        ngx_http_internal_redirect(r, &url, NULL);</font></div><div><font face="monospace, monospace">        ngx_http_finalize_request(r, NGX_DONE);</font></div><div><font face="monospace, monospace">        return NGX_DONE;</font></div><div><font face="monospace, monospace">    }</font></div><div><font face="monospace, monospace">    ...</font></div><div><font face="monospace, monospace">}</font></div><div><br></div><div>I have the following conf for '/my_location':</div><div><br></div><div><font face="monospace, monospace">  server {</font></div><div><font face="monospace, monospace">     ...</font></div><div><font face="monospace, monospace">     location / {</font></div><div><font face="monospace, monospace">         ...</font></div><div><font face="monospace, monospace">     }</font></div><div><font face="monospace, monospace">     location /my_location {</font></div><div><font face="monospace, monospace">         proxy_pass <a href="http://myserver">http://myserver</a>;</font></div><div><font face="monospace, monospace">     }</font></div><div><font face="monospace, monospace">   }</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="arial, helvetica, sans-serif">However, I am running into an issue with my code. The request seems to get forwarded to my server like I expected. However, my connection seems to hang. Looks like the server seems to be waiting to read more data from nginx. When I interrupt my server (ctrl-c; its a simple python server), it sort breaks out of the read loop and a response is returned. Sending the same request to my server without sending it through my module in nginx, behaves correctly.</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif">Could someone more experienced in nginx, point out what I am doing wrong? Is redirect allowed from a body filter handler? Thanks for your help in advance.</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif">Regards,</font></div><div><font face="arial, helvetica, sans-serif">Dk.</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif"><br></font></div></div></div></div></div></div>