verifying uploaded files with ClamAV before upstream

Calin Don calin.don at
Mon Aug 29 06:45:26 UTC 2011

Take note that while you are processing the content using embedded Perl or
lua, the nginx worker which is processing is blocked, thus not serving
anything. It migth be a better solution to check for viruses inside your

On Mon, Aug 29, 2011 at 01:01, Jérémie Pierson <lists at> wrote:

> Hi!
> I have a webapp that allows users to upload files. But before that
> webapp sees the files, I need to check them for viruses (with ClamAV).
> Requests are proxied by Nginx with a classic proxy_pass directive.
> I have tried tu use the embedded Perl module, without success.
> Specifically, I successfully got access to the body of the client
> request (i.e. the uploaded file's content), but have problem with the
> reply...
> If a virus is found, I want to reply with e.g. "403 Forbidden". But if
> the file is clean, I want the webapp to get it via proxy_pass as
> usual. I could only manage either always 403, or always pass to upstream
> :-(
> Is it possible to do that with the Perl module? I would prefer that
> solution as I don't have much time for the alternative :-)
> If not, could I write a handler module to do that? I read Evan Miller's
> guide to Nginx modules, but I'm not sure how to pass control to another
> handler in the "no-virus" case.
> --
> Jérémie
> --
> Posted via
> _______________________________________________
> nginx mailing list
> nginx at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the nginx mailing list