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;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;:
- 设置要执行的脚本文件的完整路径。 $document_root 是网站的根目录,$fastcgi_script_name 是请求的脚本文件路径。
- fastcgi_param QUERY_STRING $query_string;:
- 设置查询字符串(即URL中“?”后的部分)。
- fastcgi_param REQUEST_METHOD $request_method;:
- 设置HTTP请求的方法(例如GET、POST)。
- fastcgi_param CONTENT_TYPE $content_type;:
- 设置请求的内容类型(例如application/x-www-form-urlencoded)。
- fastcgi_param CONTENT_LENGTH $content_length;:
- 设置请求的内容长度。
- fastcgi_param SCRIPT_NAME $fastcgi_script_name;:
- 设置脚本文件的名称。
- fastcgi_param REQUEST_URI $request_uri;:
- 设置完整的请求URI(包括查询字符串)。
- fastcgi_param DOCUMENT_URI $document_uri;:
- 设置请求的URI。
- fastcgi_param DOCUMENT_ROOT $document_root;:
- 设置文档的根目录。
- fastcgi_param SERVER_PROTOCOL $server_protocol;:
- 设置服务器使用的协议(例如HTTP/1.1)。
- fastcgi_param REQUEST_SCHEME $scheme;:
- 设置请求的方案(http或https)。
- fastcgi_param HTTPS $https if_not_empty;:
- 如果请求使用HTTPS,则设置为on。
- fastcgi_param GATEWAY_INTERFACE CGI/1.1;:
- 设置网关接口的版本。
- fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;:
- 设置服务器软件名称和版本。
- fastcgi_param REMOTE_ADDR $remote_addr;:
- 设置客户端的IP地址。
- fastcgi_param REMOTE_PORT $remote_port;:
- 设置客户端的端口号。
- fastcgi_param SERVER_ADDR $server_addr;:
- 设置服务器的IP地址。
- fastcgi_param SERVER_PORT $server_port;:
- 设置服务器的端口号。
- fastcgi_param SERVER_NAME $server_name;:
- 设置服务器的名称。
- 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进程通信的参数。它们定义的参数几乎是相同的,具体参数解释如下:
- fastcgi_param QUERY_STRING $query_string;:
- 设置查询字符串(即URL中“?”后的部分)。
- fastcgi_param REQUEST_METHOD $request_method;:
- 设置HTTP请求的方法(例如GET、POST)。
- fastcgi_param CONTENT_TYPE $content_type;:
- 设置请求的内容类型(例如application/x-www-form-urlencoded)。
- fastcgi_param CONTENT_LENGTH $content_length;:
- 设置请求的内容长度。
- fastcgi_param SCRIPT_NAME $fastcgi_script_name;:
- 设置脚本文件的名称。
- fastcgi_param REQUEST_URI $request_uri;:
- 设置完整的请求URI(包括查询字符串)。
- fastcgi_param DOCUMENT_URI $document_uri;:
- 设置请求的URI。
- fastcgi_param DOCUMENT_ROOT $document_root;:
- 设置文档的根目录。
- fastcgi_param SERVER_PROTOCOL $server_protocol;:
- 设置服务器使用的协议(例如HTTP/1.1)。
- fastcgi_param REQUEST_SCHEME $scheme;:
- 设置请求的方案(http或https)。
- fastcgi_param HTTPS $https if_not_empty;:
- 如果请求使用HTTPS,则设置为on。
- fastcgi_param GATEWAY_INTERFACE CGI/1.1;:
- 设置网关接口的版本。
- fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;:
- 设置服务器软件名称和版本。
- fastcgi_param REMOTE_ADDR $remote_addr;:
- 设置客户端的IP地址。
- fastcgi_param REMOTE_PORT $remote_port;:
- 设置客户端的端口号。
- fastcgi_param SERVER_ADDR $server_addr;:
- 设置服务器的IP地址。
- fastcgi_param SERVER_PORT $server_port;:
- 设置服务器的端口号。
- fastcgi_param SERVER_NAME $server_name;:
- 设置服务器的名称。
- fastcgi_param REDIRECT_STATUS 200;:
- 仅用于PHP,如果PHP是使用--enable-force-cgi-redirect构建的,则设置重定向状态为200。
总结
这两个文件 (fastcgi.conf 和 fastcgi_params) 都定义了Nginx与FastCGI进程之间的通信参数。它们的主要区别在于 fastcgi.conf 通常包含更多的特定配置,而 fastcgi_params 更加基础和通用。实际使用中,两个文件可能被不同的虚拟主机或不同的环境引用。