我在 Nginx 中应用对象缓存时遇到了麻烦,基于本文(在无法理解 Nginx 官方文档后,我访问了该文档)。
http{}
我尝试将其添加到块的最末尾nginx.conf
:
## Nginx FastCGI Cache
fastcgi_cache_path /var/cache/nginx/fastcgi_temp/cache levels=1:2 keys_zone=czone:100m inactive=60m;
fastcgi_cache_key $scheme$request_method$host$request_uri;
fastcgi_cache_lock on;
fastcgi_cache_use_stale error timeout invalid_header updating http_500;
fastcgi_cache_valid 200 301 302 60m;
fastcgi_pass_header Set-Cookie:Set-Cookie;
fastcgi_pass_header Cookie;
fastcgi_ignore_headers Cache-Control Expires Set-Cookie;
添加后,我保存并执行,nginx -t
但出现错误“测试失败”。
Nginx 错误日志错误给出如下:
mkdir()“/var/cache/nginx/fastcgi_temp/cache”失败(2:没有此文件或目录)。
看来 PHPmkdir()
失败了。
我的问题
正确的 POSIX 指令是什么,/var/
以便 PHP 函数可以/var/cache/nginx/fastcgi_temp/
安全创建?什么应该是安全的?
或者我不应该更改/var/
POSIX 指令而/var/cache/nginx/fastcgi_temp/
只创建和更改其权限,但是应该更改什么呢?
答案1
正如有人在评论中指出的那样,您必须预先为 nginx 缓存创建目录(可能位于 /var/cache/nginx 下)并赋予正确的权限。
我通常用来
mkdir /var/cache/nginx
chmod 755 /var/cache/nginx
chown nginx:nginx /var/cache/nginx
所有者取决于您的设置和分布。
Nginx 创建最后一个目录,在我的服务器上是 chown nginx:nignx 和 chmod 700