nginx tempfiles

Nick Kew niq at apache.org
Mon Sep 1 10:34:07 UTC 2014


On Fri, 2014-08-29 at 17:26 +0400, Maxim Dounin wrote:

> In either case, you may want to consider using request body 
> filters instead, as recently discussed here:
> 
> http://mailman.nginx.org/pipermail/nginx-devel/2014-August/005781.html

If I'm to use such a feature when it's uncommitted because you're
not sure it's a good way to implement input filters, I'd like at
least to make it easily switchable.

Would you consider adding a #define to detect the patch
and simplify compile-time selection of code?
Something like:

$ diff -u configure*
--- configure	2014-08-05 12:13:05.000000000 +0100
+++ configure.patched	2014-09-01 11:25:21.128430978 +0100
@@ -112,4 +112,6 @@
     have=NGX_BUILD value="\"$NGX_BUILD\"" . auto/define
 fi
 
+have=NGX_INPUT_FILTERS value=1358156187 . auto/define
+
 . auto/summary

(That's against the 1.7.4 tarball: I didn't find anything looking
like a dev repo).

> Reading and then writing temorary files will be suboptimal.  And 

Yes of course.  I was just guessing that the alternative of buffering
it all in memory would be worse; else nginx wouldn't've used a tempfile
in the first place!

I can also see a minor advantage to all-at-once filtering, in that
it means the filter can take responsibility for administrivia like
setting a correct Content-Length for the possibly-changed payload.

> replacing r->request_body->temp_file, even if you'll be able to do 
> it properly, will likely result in your module being broken during 
> further nginx development.

That's a risk with any patch, and surely applies even to your own
uncommitted input-filtering patch?

-- 
Nick Kew



More information about the nginx-devel mailing list