<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'><font size="3" face="Calibri">Hi Zhu,</font><div style="font-size: 12pt; "><font face="Calibri"><br></font></div><div style="font-size: 12pt; "><font face="Calibri">I tried taobao's module and it works like a charm if nginx is configured as a web server:</font></div><div style="font-size: 12pt; "><font face="Calibri"><br></font></div><span style="font-family: Calibri; ">server {</span><br><span class="Apple-tab-span" style="font-family: Calibri; white-space: pre; "> </span><span style="font-family: Calibri; ">listen       80;</span><br><span class="Apple-tab-span" style="font-family: Calibri; white-space: pre; ">        </span><span style="font-family: Calibri; ">server_name  localhost;</span><br><font face="Calibri"><br></font><span class="Apple-tab-span" style="font-family: Calibri; white-space: pre; ">       </span><span style="font-family: Calibri; ">location / {</span><br><span class="Apple-tab-span" style="font-family: Calibri; white-space: pre; ">   </span><span style="font-family: Calibri; ">    </span><span style="font-family: Calibri; ">footer "<!-- $date_gmt -->";</span><br><span class="Apple-tab-span" style="font-family: Calibri; white-space: pre; ">      </span><span style="font-family: Calibri; ">    </span><span style="font-family: Calibri; ">index index.html;</span><br><span class="Apple-tab-span" style="font-family: Calibri; white-space: pre; "> </span><span style="font-family: Calibri; ">}</span><br><div><font face="Calibri">}</font></div><div><font face="Calibri"><br></font></div><div><font face="Calibri">The result is a html comment with a gmt date like <!-- 1234567890 --> added to the end of the response body.</font></div><div><font face="Calibri"><br></font></div><div><font face="Calibri">But if configured like a reverse proxy it does not add the comment.</font></div><div><font face="Calibri"><br></font></div><div><font face="Calibri"><div>server {<br style="font-family: 'Times New Roman'; "><span class="Apple-tab-span" style="white-space: pre; ">     </span>listen       80;<br style="font-family: 'Times New Roman'; "><span class="Apple-tab-span" style="white-space: pre; ">     </span>server_name  localhost;<br style="font-family: 'Times New Roman'; "><font face="Calibri"><br></font><span class="Apple-tab-span" style="white-space: pre; ">    </span>location / {</div><div>            proxy_pass         http://127.0.0.1:8080/;<br><span class="Apple-tab-span" style="white-space: pre; ">       </span>    footer "<!-- $date_gmt -->";<br style="font-family: 'Times New Roman'; "><span class="Apple-tab-span" style="white-space: pre; ">     </span>}<br style="font-family: 'Times New Roman'; "><div style="font-family: 'Times New Roman'; "><font face="Calibri">}</font></div></div><div style="font-family: 'Times New Roman'; "><font face="Calibri"><br></font></div><div style="font-family: 'Times New Roman'; "><font face="Calibri">Well, this simple nginx location configuration points the traffic to a upstream web server. As expected, on return I don't get the nginx's default index.html, but the upstream html page instead, with the difference that the comment </font><span style="font-family: Calibri; "><!-- 1234567890 --></span><span style="font-family: Calibri; "> is not added.</span></div></font><font face="Calibri"><div style="font-family: 'Times New Roman'; "><font face="Calibri"><br></font></div><div style="font-family: 'Times New Roman'; "><font face="Calibri">I'm pretty sure I'm missing something here. I'm starting to believe that if I want to write to a response body served by a upstream server a filter may not be the answer. </font></div><div style="font-family: 'Times New Roman'; "><font face="Calibri"><br></font></div><div>I've tried evanmiller.org guide and I found the section "3.2. Anatomy of an Upstream (a.k.a Proxy) Handler" (http://www.evanmiller.org/nginx-modules-guide.html#proxying) and I have the impression that this might help me finding the answer, but I'm failing to reproduce the example because at the moment I'm not as familiar with the guts of an handler as I am with a filter.</div><div><br></div><div>Anyway, I don't even know if an handler will do the trick. So any help is welcome :)</div><div><br></div><div>Thank you.</div></font></div><div style="font-family: Calibri, sans-serif; font-size: 12pt; "><br></div><div style="font-family: Calibri, sans-serif; font-size: 12pt; "><br><div><div id="SkyDrivePlaceholder"></div><hr id="stopSpelling">Date: Sat, 22 Sep 2012 01:45:40 +0800<br>Subject: Re: nginx filter to concat text to a response body<br>From: zhuzhaoyuan@gmail.com<br>To: nginx-devel@nginx.org<br><br>Hi Filipe,<br><br><div class="ecxgmail_quote">On Sat, Sep 22, 2012 at 12:01 AM, Filipe Silva <span dir="ltr"><<a href="mailto:fs20063@outlook.com">fs20063@outlook.com</a>></span> wrote:<br><blockquote class="ecxgmail_quote" style="border-left:1px #ccc solid;padding-left:1ex">



<div><div dir="ltr"><font face="Calibri, sans-serif" size="3">Hello,</font><div style="font-family:Calibri,sans-serif;font-size:12pt"><br></div><div><font face="Calibri, sans-serif">I've been trying to produce a nginx filter to concat text to a response body but without success. </font></div>
<div><font face="Calibri, sans-serif"><br></font></div><div><font face="Calibri, sans-serif">An important detail is that it works with a nginx configured as a web server but not with a  nginx server configured as reverse proxy. </font></div>
<div><font face="Calibri, sans-serif"><br></font></div><div><font face="Calibri, sans-serif">Should I be using an handler instead?</font></div></div></div></blockquote><div><br></div><div>Is this what you are looking for?</div>
<div><a href="https://github.com/taobao/nginx-http-footer-filter" target="_blank">https://github.com/taobao/nginx-http-footer-filter</a> </div></div><div><br></div>Regards,<br clear="all"><div><br></div>-- <br>Joshua Zhu<br>Senior Software Engineer<br>
Server Platforms Team at Taobao<br>
<br>_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel</div></div>                                     </div></body>
</html>