Igor,
I tried your config, with 0.7.32 and 0.7.31, with/without debug,
with/without optimization, but I constantly get garbage before and after
the content of /y/index.html. Maybe it is returning some uninitialized
memory?
I might be totally wrong, but Evan’s module development tutorial
mentions something about NGX_AGAIN and that we should return NGX_AGAIN
if ngx_http_subrequest returns NGX_AGAIN. But looking in to your code,
ngx_http_addition_filter_module.c, line numbers 154 and 183, you are
always returning NGX_ERROR if ngx_http_subrequest does not return
NGX_OK. Could that be the reason?
Thanks,
-M
ps, I doubt it matters, but I have CentOS 5.2 64 bit.
From: Igor S. [email protected]
To: [email protected]
Sent: Wednesday, January 28, 2009 12:04:35 PM
Subject: Re: question about addition filter
On Wed, Jan 28, 2009 at 11:21:35AM -0800, Mohammad K. wrote:
which would supposedly add the content of the www.yahoo.com and www.google.com before and after the content of the page at /y/index.html? The addition filter module states that the texts after add_before_body and add_after_body are URI, but the above config doesn’t seem to be doing it!
This should work, but it’s better to use 0.7.32 for this:
location = /x {
proxy_pass http://www.yahoo.com/;
}
location = /g{
proxy_pass http://www.google.com/;
}
location /y {
add_before_body /x;
add_after_body /q;
}
On Wed, Jan 28, 2009 at 01:28:50PM -0800, Mohammad K. wrote:
ps, I doubt it matters, but I have CentOS 5.2 64 bit.
This may be gzipped content returned by external sites:
location = /x {
proxy_pass http://www.yahoo.com/;
That was the problem, the content was zipped, everything is working now.
Thanks,
-M
From: Igor S. [email protected]
To: [email protected]
Sent: Wednesday, January 28, 2009 1:39:50 PM
Subject: Re: question about addition filter
On Wed, Jan 28, 2009 at 01:28:50PM -0800, Mohammad K. wrote:
ps, I doubt it matters, but I have CentOS 5.2 64 bit.
This may be gzipped content returned by external sites:
location = /x {
proxy_pass http://www.yahoo.com/;
What if I wanted to write a module that does something like this: if
input request is something like http://localhost/y?a=foo&b=bar, then
have the before_body fetch yahoo.com/foo and after_body get the content
of google.com/bar (i.e., the URLs can bo modified on the fly). Is this
doable, possibly by modifying the content of uri that is passed to
ngx_http_subrequest, or is there another alternative?
Thanks,
-M
From: Igor S. [email protected]
To: [email protected]
Sent: Wednesday, January 28, 2009 1:39:50 PM
Subject: Re: question about addition filter
On Wed, Jan 28, 2009 at 01:28:50PM -0800, Mohammad K. wrote:
ps, I doubt it matters, but I have CentOS 5.2 64 bit.
This may be gzipped content returned by external sites:
location = /x {
proxy_pass http://www.yahoo.com/;
On Wed, Jan 28, 2009 at 02:34:54PM -0800, Mohammad K. wrote:
What if I wanted to write a module that does something like this: if input request is something like http://localhost/y?a=foo&b=bar, then have the before_body fetch yahoo.com/foo and after_body get the content of google.com/bar (i.e., the URLs can bo modified on the fly). Is this doable, possibly by modifying the content of uri that is passed to ngx_http_subrequest, or is there another alternative?
Currently add_xxxx_body does not support variables.
If it could, then it would be possible:
location /x/ {
proxy_pass http://www.yahoo.com/;
}
location /g/ {
proxy_pass http://www.google.com/;
}
location /y {
add_before_body /x/$arg_a;
add_after_body /q/$arg_b;