<div dir="ltr">Hello, <br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Nov 13, 2014 at 5:24 PM, Yichun Zhang (agentzh) <span dir="ltr"><<a href="mailto:agentzh@gmail.com" target="_blank">agentzh@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Hello!<br>
<span class=""><br>
On Wed, Nov 12, 2014 at 12:20 PM, Guido Accardo wrote:<br>
><br>
> Here, prod response is sent immediately as I want and dev receives the<br>
> traffic but the connection is closed the I got a Broken Pipe (which makes<br>
> sense).<br>
><br>
<br>
</span>For this error, maybe you should configure<br>
<br>
    proxy_ignore_client_abort on;<br>
<br>
for your dev location with proxy_pass.<br>
<br>
But using ngx.eof() for this will still introduce extra delay for the<br>
subsequent requests on the current downstream connection when HTTP<br>
keepalive or HTTP pipelining is enabled.<br></blockquote><div><br></div><div>Using "proxy_ignore_client_abort on;" as you suggested worked for me. </div><div><br></div><div>From the doc of proxy_ignore_client_abort: </div><div><br></div><div>" ... Determines whether the connection with a proxied server should be closed when a client closes the connection without waiting for a response ..."</div><div><br></div><div>So basically I'm discarding dev's responses ? </div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<span class=""><br>
><br>
> Is there a way to do capture calls in a asynchronous mode or to achieve this<br>
> in other way?<br>
><br>
<br>
</span>The recommended way is to use cosocket-based http library like Brian<br>
Akins's lua-resty-http-simple [1] (instead of subrequests and<br>
ngx_proxy) in a 0-delay timer created by <a href="http://ngx.timer.at" target="_blank">ngx.timer.at</a>() [2] (instead<br>
of the ngx.eof hack).<br></blockquote><div><br></div><div>I'm going for this solution, the ugly hack will be my second option but this seems great. </div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
BTW, it's recommended to join the openresty-en mailing list [3] for<br>
such ngx_lua related questions that way you may get more responses and<br>
get responses sooner.<br></blockquote><div><br></div><div>I'll definitely do it!</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
For your very use case, maybe lower level tools like tcpcopy [4] is a<br>
better fit? Not sure though :)<br></blockquote><div><br></div><div>I gave it a try, also <a href="https://www.npmjs.org/package/duplicator">https://www.npmjs.org/package/duplicator</a> and traffic mirroring with iptables TEE module, but anyway the library that you suggested.</div><div><br></div><div>Thank you,</div><div><br></div><div>Best Regards,</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
Regards,<br>
-agentzh<br>
<br>
[1] <a href="https://github.com/bakins/lua-resty-http-simple" target="_blank">https://github.com/bakins/lua-resty-http-simple</a><br>
[2] <a href="https://github.com/openresty/lua-nginx-module#ngxtimerat" target="_blank">https://github.com/openresty/lua-nginx-module#ngxtimerat</a><br>
[3] <a href="https://groups.google.com/group/openresty-en" target="_blank">https://groups.google.com/group/openresty-en</a><br>
[4] <a href="https://github.com/session-replay-tools/tcpcopy" target="_blank">https://github.com/session-replay-tools/tcpcopy</a><br>
<br>
_______________________________________________<br>
nginx mailing list<br>
<a href="mailto:nginx@nginx.org">nginx@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">---<div>Guido Accardo</div></div></div>
</div></div>