• 记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的一个坑,具体是什么,我也无从得知,

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

  • 相关阅读:
    网鼎杯_2018 _Web_fakebook
    CISCN 2019-ikun
    流浪者-CTF
    wtf.sh-150
    bug-ctf
    EasyRE
    MySQL 存储引擎特性和线程模型
    InnoDB体系结构---物理存储结构
    mysql数据页结构及行格式
    linux系统清理缓存
  • 原文地址:https://www.cnblogs.com/tywei/p/4624206.html
Copyright © 2020-2023  润新知