问题1:提示无权限(permission denied)
首先,查看文件属性
> ls -l drwxrwx--- 1 root vboxsf 0 May 5 2022 web
其次,查看文件所属的vboxsf组信息
> cat /etc/group |grep vboxsf vboxsf:x:998:hi
然后,将Nginx用户www-data加入vboxsf组
> usermod -aG vboxsf www-data
最后重启Nginx即可解决问题
问题2:提示内容类似 “sendfile() failed (22: Invalid argument)”
本人通过两天间歇性的通过百度和谷歌查询,总算是解决了这个问题!!!
故障修复步骤很简单,只需要修改Nginx配置文件 /etc/nginx/nginx.conf 中的http配置,设置sendfile选项为off即可!!!!!!!!!!!
百度说:Nginx配置中sendfile 选项的作用如下:
sendfile = off 时,应用程序读取磁盘中的文件以字节流的形式从磁盘中加载文件,然后再将文件以字节流的形式复制到内核中。内核在把文件推送到NC。
sendfile = on 时,应用程序直接向内核发送指令,让内核去读文件。读完文件内核直接推送给NC。只有一次复制操作,实现异步网络IO形式。因此,性能会有很大的提升。
具体还要根据实际使用情况来配置sendfile。当读取服务不能解析大量的文件时。还是建议将sendfile配置为off