Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I have a "hello world" fastcgi running on 127.0.0.1:9000 and would like to serve it via nginx. I added the following lines to the nginx.conf http block:

server {
    listen public.ip.address.here:80;
    server_name $host;

    location / {
        include fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
    }
}

However, instead of getting the output of the fastcgi, I only get a 502 Bad Gateway response.

error_log says: [error] 1924#0: *1 upstream prematurely closed FastCGI stdout while reading response header from upstream, client: myIP, server: $host, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "public.ip.address.here"

share|improve this question
add comment

1 Answer

up vote 0 down vote accepted

This sounds like the actual problem is in your FastCGI application. Have a look at it's error log or other output it might have produced.

In general, it might be that your require more FastCGI configuration, to pass on data to your application. A larger setup might include stuff like those settings:

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  HTTPS              $https if_not_empty;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

Again, your FastCGI application's output should tell you more, it could also be a completely nginx-unrelated problem

share|improve this answer
    
The part you posted is provided by include fastcgi_params;, you were right with the fastcgi application though. Thanks! –  thpetrus Jan 31 '13 at 14:32
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.