记vagrant nginx sendfile问题

从今年开始,一直在vagrant虚拟机上做开发

因前段时间一个项目需要调试静态文件,出现静态文件修改后,浏览器刷新不生效。

最后追踪到是nginx开启了sendfile这一项。。

具体sendfile原理可以查下,,网上写的都很详细,这里就不复述了。

一开始一直认为是nginx某个地方配置有问题。。但后来干脆自己写下,做下测试

具体代码如下(tcp那几步连接这里就不写了。网上很多):

/**
 * @connect tcp 连接句柄
 */
int sendClient(int connect)
{
    int fd;
    struct stat fileStat;
    off_t offset = 0;
    fd = open("/data/web/test.com/index.html", O_RDONLY|O_NONBLOCK);
    if (fd < 0) {
        perror("open file.");
        return 0;
    }
    //获取文件信息
    fstat(fd, &fileStat);
    char buffer[fileStat.st_size];
    // read(fd, buffer, fileStat.st_size);
    //write(connect, buffer, fileStat.st_size);
    sendfile(connect, fd, &offset, fileStat.st_size);
    close(fd);
    return 1;
}

至些我测了下,得到的还是不生效,由此可以断定,与nginx无关,与系统调度有关

至于问题,我现在的回答只能是vagrant的一个坑,具体是什么,我也无从得知,

当然, 这个我也是从表象猜测, 如果有人知道真正的原因, 还请不吝留言指教

原文地址:https://www.cnblogs.com/tywei/p/4624206.html