fastcgi.conf

[root@release nginx]# more fastcgi.conf

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  REQUEST_SCHEME     $scheme;
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.conf 文件用于配置Nginx与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  REQUEST_SCHEME     $scheme;
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;
  1. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;:
  • 设置要执行的脚本文件的完整路径。 $document_root 是网站的根目录,$fastcgi_script_name 是请求的脚本文件路径。
  1. fastcgi_param QUERY_STRING $query_string;:
  • 设置查询字符串(即URL中“?”后的部分)。
  1. fastcgi_param REQUEST_METHOD $request_method;:
  • 设置HTTP请求的方法(例如GET、POST)。
  1. fastcgi_param CONTENT_TYPE $content_type;:
  • 设置请求的内容类型(例如application/x-www-form-urlencoded)。
  1. fastcgi_param CONTENT_LENGTH $content_length;:
  • 设置请求的内容长度。
  1. fastcgi_param SCRIPT_NAME $fastcgi_script_name;:
  • 设置脚本文件的名称。
  1. fastcgi_param REQUEST_URI $request_uri;:
  • 设置完整的请求URI(包括查询字符串)。
  1. fastcgi_param DOCUMENT_URI $document_uri;:
  • 设置请求的URI。
  1. fastcgi_param DOCUMENT_ROOT $document_root;:
  • 设置文档的根目录。
  1. fastcgi_param SERVER_PROTOCOL $server_protocol;:
  • 设置服务器使用的协议(例如HTTP/1.1)。
  1. fastcgi_param REQUEST_SCHEME $scheme;:
  • 设置请求的方案(http或https)。
  1. fastcgi_param HTTPS $https if_not_empty;:
  • 如果请求使用HTTPS,则设置为on
  1. fastcgi_param GATEWAY_INTERFACE CGI/1.1;:
  • 设置网关接口的版本。
  1. fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;:
  • 设置服务器软件名称和版本。
  1. fastcgi_param REMOTE_ADDR $remote_addr;:
  • 设置客户端的IP地址。
  1. fastcgi_param REMOTE_PORT $remote_port;:
  • 设置客户端的端口号。
  1. fastcgi_param SERVER_ADDR $server_addr;:
  • 设置服务器的IP地址。
  1. fastcgi_param SERVER_PORT $server_port;:
  • 设置服务器的端口号。
  1. fastcgi_param SERVER_NAME $server_name;:
  • 设置服务器的名称。
  1. fastcgi_param REDIRECT_STATUS 200;:
  • 仅用于PHP,如果PHP是使用--enable-force-cgi-redirect构建的,则设置重定向状态为200。

这些参数一起定义了Nginx如何与FastCGI进程通信,确保请求的所有相关信息都正确传递给FastCGI进程,以便正确处理请求。

fastcgi_params

[root@release nginx]# more fastcgi_params

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  REQUEST_SCHEME     $scheme;
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_params 文件和 fastcgi.conf 文件非常相似,都是用于配置Nginx与FastCGI进程通信的参数。它们定义的参数几乎是相同的,具体参数解释如下:

  1. fastcgi_param QUERY_STRING $query_string;:
  • 设置查询字符串(即URL中“?”后的部分)。
  1. fastcgi_param REQUEST_METHOD $request_method;:
  • 设置HTTP请求的方法(例如GET、POST)。
  1. fastcgi_param CONTENT_TYPE $content_type;:
  • 设置请求的内容类型(例如application/x-www-form-urlencoded)。
  1. fastcgi_param CONTENT_LENGTH $content_length;:
  • 设置请求的内容长度。
  1. fastcgi_param SCRIPT_NAME $fastcgi_script_name;:
  • 设置脚本文件的名称。
  1. fastcgi_param REQUEST_URI $request_uri;:
  • 设置完整的请求URI(包括查询字符串)。
  1. fastcgi_param DOCUMENT_URI $document_uri;:
  • 设置请求的URI。
  1. fastcgi_param DOCUMENT_ROOT $document_root;:
  • 设置文档的根目录。
  1. fastcgi_param SERVER_PROTOCOL $server_protocol;:
  • 设置服务器使用的协议(例如HTTP/1.1)。
  1. fastcgi_param REQUEST_SCHEME $scheme;:
  • 设置请求的方案(http或https)。
  1. fastcgi_param HTTPS $https if_not_empty;:
  • 如果请求使用HTTPS,则设置为on
  1. fastcgi_param GATEWAY_INTERFACE CGI/1.1;:
  • 设置网关接口的版本。
  1. fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;:
  • 设置服务器软件名称和版本。
  1. fastcgi_param REMOTE_ADDR $remote_addr;:
  • 设置客户端的IP地址。
  1. fastcgi_param REMOTE_PORT $remote_port;:
  • 设置客户端的端口号。
  1. fastcgi_param SERVER_ADDR $server_addr;:
  • 设置服务器的IP地址。
  1. fastcgi_param SERVER_PORT $server_port;:
  • 设置服务器的端口号。
  1. fastcgi_param SERVER_NAME $server_name;:
  • 设置服务器的名称。
  1. fastcgi_param REDIRECT_STATUS 200;:
  • 仅用于PHP,如果PHP是使用--enable-force-cgi-redirect构建的,则设置重定向状态为200。

总结

这两个文件 (fastcgi.conffastcgi_params) 都定义了Nginx与FastCGI进程之间的通信参数。它们的主要区别在于 fastcgi.conf 通常包含更多的特定配置,而 fastcgi_params 更加基础和通用。实际使用中,两个文件可能被不同的虚拟主机或不同的环境引用。