虚拟机(VirtualBox)共享文件引起的Nginx故障修复
linux 2022-11-16 21:49:56 6661


问题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

©2021-2022 larastu.com 版权所有