Nginx代理服务器当面对海量的文件时就需要文件整理系统。但是这又是怎么样完成的呢?下面我们就来看看有关的文件整理系统。在网上意外发现一种说法,众所周知,往Nginx代理服务器上传一个文件,Nginx会自己将这个文件保存下来,然后再往后端发送。
在这个过程中,Nginx代理服务器会创建一个临时文件,既然是临时文件,很显然会在文件系统上存有一个文件,于是,Nginx就可以往后端发送一个临时文件的文件名,而不是一整个文件!
然后后端拿到这个文件名可以直接读取。这个文件名在Nginx由一个变量提供,那就是$request_body_file,在Nginx的php fastcgi_params配置文件中,因为一般都是直接抄的,所以通常都带有这句:fastcgi_param REQUEST_BODY_FILE $request_body_file;于是,在Nginx的proxy配置中,也可以写上:proxy_set_header request_header_file $request_body_file;虽然Nginx代理服务器可以将这个临时文件的文件名传到后端,但是仍然需要满足一些条件才能利用到这个优化的:
1) 后端要和代理在同一台机器上,这个不必要解释。
2) 后端要支持这项优化,在大多数应用服务器上就是能够关闭上传功能,仅仅读取request_header就可以,这么看来,有了这个变量,居然能使不支持上传的应用服务器软件轻易就增加了上传文件的功能。
【编辑推荐】