Modifying response body


#1

2 questions:
Is it possible to return an empty response? i.e.
location /empty-response {
add_header(“some-header”, “foo-bar”);
# nothing in response body
}

Is it possible have the response body be only the unique id set by the
userid module? i.e.
userid on;
location /unique-id {
# response body should be “uid=<cookie’s uid>”
}

Thanks,
Joe


#2

Hello!

On Wed, May 06, 2009 at 08:57:31AM -0700, Joe Van D. wrote:

2 questions:
Is it possible to return an empty response? i.e.
location /empty-response {
add_header(“some-header”, “foo-bar”);
# nothing in response body
}

Something like

location /empty-response {
    add_header ...;
    return 204;
}

should work for http-complaint applications (but not some popular
browsers).

Is it possible have the response body be only the unique id set by the
userid module? i.e.
userid on;
location /unique-id {
# response body should be “uid=<cookie’s uid>”
}

Either use embedded perl or try http_response module by Kirill
Korinskiy
(http://catap.ru/downloads/nginx/ngx_http_response-0.3.tar.gz).

Maxim D.


#3

Hello!

On Wed, May 06, 2009 at 12:49:30PM -0700, Joe Van D. wrote:

# nothing in response body

browsers).

I earlier tried returning a 200 and it seemed to hang on me. Maybe browser
problem?

No, returning 200 won’t do anything good. For now it will
basically instruct nginx to “forgot” about request without sending
anything (pretending reply was already sent).

Returning 204 should work as it returns correct HTTP reply with
empty content - but AFAIK at least IE have problems with it.

Thanks. I think I will just proxy the request to a Sinatra app, even though
I’m losing a lot of performance. Is that module for nginx 0.6.x?

It should work for both 0.6.* and 0.7.*.

Looks like it doesn’t compile with 0.7.53+ due to trivial unused
function declaration warning though. But it’s really trivial to
fix even without C knowledge (just remove offending line or
./configure nginx with --with-cc-opt="-Wno-error").

Maxim D.


#4

On Wed, May 6, 2009 at 12:02 PM, Maxim D. removed_email_address@domain.invalid
wrote:

Something like

location /empty-response {
add_header …;
return 204;
}

should work for http-complaint applications (but not some popular
browsers).

I earlier tried returning a 200 and it seemed to hang on me. Maybe
browser
problem?

Is it possible have the response body be only the unique id set by the
userid module? i.e.
userid on;
location /unique-id {
# response body should be “uid=<cookie’s uid>”
}

Either use embedded perl or try http_response module by Kirill
Korinskiy (http://catap.ru/downloads/nginx/ngx_http_response-0.3.tar.gz).

Thanks. I think I will just proxy the request to a Sinatra app, even
though
I’m losing a lot of performance. Is that module for nginx 0.6.x?