我有一个“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;