Nginx FastCGI question

Maxim Dounin mdounin at
Tue Jan 1 20:45:20 UTC 2013


On Tue, Jan 01, 2013 at 06:21:02PM +0000, Some Developer wrote:

> Hi,
> When you run a FastCGI application behind Nginx does Nginx pass all
> the HTTP request headers to the FastCGI server / app? Or do you need
> to explicitly pass them using fastcgi_param?
> If Nginx does pass them, does it pass them all or only a subset of
> the request headers? The FastCGI specification is not at all clear
> on whether the HTTP headers are passed or not.

All HTTP request headers are passed to a FastCGI application by 
default.  You may modify/clear some by using the fastcgi_param 

> Also in the same way I've read through the FastCGI specification and
> can find no information in which states which entity is responsible
> for generating all the HTTP response headers. I would assume it
> would be my FastCGI app and Nginx just forwards it on but does Nginx
> add or modify any headers after I have sent my response from my
> FastCGI app back to Nginx?

FastCGI relies on CGI here, so you should read RFC 3875 for basics, 
see  In short - you 
are responsible for headers like "Content-Type", but must not add 
headers like "Transfer-Encoding".

Response from a FastCGI backend is treated by nginx more or less 
like any other response, so response headers will be modified if 
it's needed.

Maxim Dounin

More information about the nginx mailing list