我有一个“hello world”fastcgi在127.0.0.1:9000上运行,并希望通过nginx提供服务.我将以下行添加到nginx.conf http块:

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

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

但是,我只获得502 Bad Gateway响应,而不是获取fastcgi的输出.

error_log说:[error] 1924#0:* 1上游过早关闭FastCGI stdout,同时从上游读取响应头,客户端:myIP,服务器:$host,request:“GET / HTTP / 1.1”,上游:“fastcgi:// 127.0.0.1:9000“,主持人:”public.ip.address.here“

最佳答案
这听起来像你的FastCGI应用程序中的实际问题.看看它的错误日志或它可能产生的其他输出.

通常,您可能需要更多的FastCGI配置,才能将数据传递给您的应用程序.较大的设置可能包含以下设置:

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;

同样,你的FastCGI应用程序的输出应该告诉你更多,它也可能是一个完全与nginx无关的问题

dawei

【声明】:唐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。