为存储承载客户端请求正文的临时文件定义存储目录。在指定目录下可支持高达3层子目录结构。例如,下面的配置:
client_body_temp_path /spool/nginx/client_temp 1 2; 【在http模块下配置】
临时文件的路径可能是下面的情况:
/spool/nginx/client_temp/7/45/00000123457
因为如果所有上传的文件都放在一个文件夹下,不仅很容易文件名冲突,并且容易导致一个文件夹特别大,所以有必要创建子目录。
这里的level1,2,3如果有值就代表存在一级,二级,三级子目录。
目录名是由数字进行命名的,所以这里的具体的值就是代表目录名的数字位数。
同上
为存储承载从代理服务器接收到的数据的临时文件定义目录。指定目录下支持3级子目录结构:
proxy_temp_path /spool/nginx/proxy_temp 1 2;
临时文件路径可能像这样:
/spool/nginx/proxy_temp/7/45/000001234571
这里的level1,2,3如果有值就代表存在一级,二级,三级子目录。
目录名是由数字进行命名的,所以这里的具体的值就是代表目录名的数字位数。
《nginx 出现 13: Permission denied》
同上
指令指定存储从别的服务器传送来的数据临时文件路径,同样可以指定三级目录已经哈希存储,level的值指定为哈希设置多少标记,例如,在下列配置中:
fastcgi_temp_path /spool/nginx/fastcgi_temp 1 2;
临时文件类似如下:
/spool/nginx/fastcgi_temp/7/45/00000123457
有个问题重点强调下:
nginx同FastCGI协同工作,FastCGI其实多是php-fpm。nginx的工作用户需要和PHP的工作用户设置一样的,(nginx.conf user配置、www.conf user配置),不然就会出现fastcgi_temp权限的问题。
open() "/var/temp/nginx/fastcgi/2/44/0000001442" failed (13: Permission denied) while reading upstream mkdir() "/var/temp/nginx/fastcgi/4/44" failed (13: Permission denied) while reading upstream
可能是php用户创建了临时文件,nginx用户读不了,反正挺麻烦的,不如设置一样的用户省心。
一般情况下是不容易出问题了,在什么情况下会出问题?PHP输出的数据过大时,就得借助缓存目录fastcgi_temp,这时就可能会因目录权限的问题,客户端读取不到PHP产生的数据。
定义用于存储具有从uwsgi服务器接收的数据的临时文件的目录。 最多可以在指定目录下使用三级子目录层次结构。 例如,在以下配置中
uwsgi_temp_path /spool/nginx/uwsgi_temp 1 2;
一个临时文件可能如下所示:
/spool/nginx/uwsgi_temp/7/45/00000123457
另请参见uwsgi_cache_path指令的use_temp_path参数。
设定scgi临时目录,同上。