Hello, 
I has already read ngx_http_proxy_module.c twice(source code version 
1.9.4),Sadness that i'm hadn't find ngx_write_chain_to_file or 
ngx_write_chain_to_temp_file function in this source file.
I found other code:
=================================================================================================
line 1551
  for ( ;; ) { 
ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, 
"proxy output chunk: %d", ngx_buf_size(cl->buf)); 

size += ngx_buf_size(cl->buf); 

if (cl->buf->flush 
|| cl->buf->sync 
|| ngx_buf_in_memory(cl->buf) 
|| cl->buf->in_file) 
{ 
tl = ngx_alloc_chain_link(r->pool); 
if (tl == NULL) { 
return NGX_ERROR; 
} 

tl->buf = cl->buf; 
*ll = tl; 
ll = &tl->next; 
} 

if (cl->next == NULL) { 
break; 
} 

cl = cl->next; 
} 
line 1653
out: 

rc = ngx_chain_writer(&r->upstream->writer, out);

I guss that nginx get response from buffer and rewrite output buffer directly.
===============================================================================================
line 459
   { ngx_string("proxy_cache_path"), 
NGX_HTTP_MAIN_CONF|NGX_CONF_2MORE, 
ngx_http_file_cache_set_slot, 
NGX_HTTP_MAIN_CONF_OFFSET, 
offsetof(ngx_http_proxy_main_conf_t, caches), 
&ngx_http_proxy_module },

proxy_cache_path is set to ngx_http_proxy_main_conf_t->caches varible,but it 
doesn't be used in proxy moudle's source code to write cache file.
=================================================================================================
What I want to do:
Nginx Call header,body handler like this:
header handle1->header handler2->body handler1->body hander2 

Myself module is in:
header handle1->header handler2->body handler1->myself body handle->body 
hander2 

I want to save response buffer which body handler1 rewrite to a file.

 



hack988
 
From: Hung Nguyen
Date: 2015-09-08 11:01
To: nginx-devel
Subject: Re: How to get Original response before gzip or another module filter 
rewrite response
Hello,

I don’t know which context you are trying to do, but in order to write a chain 
buffer (this’s what contain nginx’s response) to file, you can use 
ngx_write_chain_to_file or ngx_write_chain_to_temp_file function. 
Many nginx modules already use these function, take a look at 
ngx_http_proxy_module for more detail. 

—
Hưng


On Sep 7, 2015, at 9:07 PM, hack988 <hack...@163.com> wrote:

Hello everybody:
    Is Anyone can anwer my question? thanks very mach;  
 


hack988
 
From: hack988
Date: 2015-09-05 21:20
To: nginx-devel
Subject: How to get Original response before gzip or another module filter 
rewrite response
 Dear All:
    I'm a beginner for nginx development,Although i'm read Emiller's Guide and 
another article about Nginx develop for several days,I still don't know how to 
read whole original response buffer chain copy to myself module's temporary 
buffer,before another module(gzip,gunzip,gzip_static) rewrite buffer.
How to check another module is written output buffer to diffrent content type?
I want to copy buffer to a file that no compress or chunked.
I'm sorry for my  poor english ,thx.
 


hack988
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel

_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel

Reply via email to