header already sent

Dk Jack dnj0496 at gmail.com
Fri Jul 6 00:44:00 UTC 2018

I have an nginx module. The purpose of my module is to inspect every
request and make a binary decision (i.e drop or allow). When dropping, I am
sending a custom status code and response message. I've setup my module
handler to be called in the NGX_HTTP_REWRITE_PHASE. Things seem to be
working fine for the most part except for a small issue.

I am seeing 'header already sent' messages in the nginx error.log. In my
handler, I create a context for my module and attach it request using
the ngx_http_set_ctx call. I am using the context to store some info and
also to prevent my module from processing the same request multiple times.
My module processes the request only once.

I get the 'header already sent' message only for a fraction of the
requests. The messages seem to be generated only for requests that I
allowed in my module. In my module handler, I return an NGX_DECLINED return
code when I allow a request. The message is not generated for every allowed
request but only for some of the allowed requests. When the error is
generated it is always for POST request and not all POST requests cause
this error message to be logged.

Could someone explain what could be going on here or where I should look at
next to debug this further? Any pointers are appreciated. Thanks.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-devel/attachments/20180705/82a662eb/attachment.html>

More information about the nginx-devel mailing list