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
更加基础和通用。实际使用中,两个文件可能被不同的虚拟主机或不同的环境引用。