NGINX 1.1.3.3/Debian 8 - 自定义安装,client_temp 是文件而不是目录

NGINX 1.1.3.3/Debian 8 - 自定义安装,client_temp 是文件而不是目录

我遇到了一个奇怪的问题。我有一个自定义配置和编译的 NGINX 版本(我想安装几个额外的编译时模块)。无论出于什么原因,它都会创建client_temp为文件而不是目录,这导致每当我尝试上传文件时都出现 500 内部服务器错误。

我的配置:

--prefix=/opt/nginx --sbin-path=/usr/local/sbin/nginx 
--conf-path=/opt/nginx/nginx.conf 
--error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log 
--pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock 
--http-client-body-temp-path=/var/cache/nginx/client_temp 
--http-proxy-temp-path=/var/cache/nginx/proxy_temp 
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp 
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp 
--http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=www-data --group=www-data 
--with-http_ssl_module --with-http_realip_module 
--with-http_gunzip_module --with-http_gzip_static_module --with-threads --with-file-aio 
--with-ipv6 --with-http_v2_module 
--with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector 
--param=ssp-buffer-size=4 -m64 -mtune=native' --add-module=../ngx_cache_purge-2.3 
--add-module=../headers-more-nginx-module --add-module=../ModSecurity-nginx

client_temp如您所见,我确实为:指定了路径--http-client-body-temp-path=/var/cache/nginx/client_temp,但它是一个文件而不是目录。

我是否需要手动创建client_temp目录并删除该文件?或者还有其他方法可以补救这种情况?

答案1

在这些情况下,有时更容易/更好的方法是client_temp先创建目录,然后设置其权限/所有权,然后然后启动 Nginx 服务。这将确保文件夹存在,并且其权限设置适合接受上传的文件。

相关内容