Nginx FastCGI question

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


Hello!

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 
directive.

> 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 http://tools.ietf.org/html/rfc3875#section-6.  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
http://nginx.com/support.html



More information about the nginx mailing list