更新web文件40秒后生效

服务器web服务使用的是nginx。

经测试,上传文件后大约40秒后生效。

更新文件不立即生效。

网上资料说根nginx中sendfile选项有关。

在nginx配置文件中,http区域里将sedfile设置为off,重启nginx服务。

谷歌浏览器强制刷新一次,即可实现上传更新文件立即生效的效果。

sendfile 选项 默认是on,on表示启用高校传输文件模式。它直接向内核发送指令,让内核读取文件。读去完成后内核直接推送给网络。off则表示直接从磁盘中以字节流读取文件,才将其以字节流的形式复制到内核中,内核再把文件推送到网络。 

从上面 过程分析,设置为on时,少一次复制过程,性能上会提升。

关闭sendfile可能导致如下影响:

1.增加了数据复制的开销

2.增加了上下文切换的次数

因此可能会影响吞吐量,修改需要谨慎。

这个方法对静态文件有影响,对动态文件则无效。

这个站点使用了php,php文件经测试更新生效时间从1-30秒不等。

大多数时候不会立即更新。

检查php.ini配置文件,发现其实用了opcache

revalidate_freq这个值设定60秒

修改为3秒。

这个选项是设定检查文件的时间戳间隔,时间越短,检查越频繁。

但是过于频繁会增加开销,如果修改比较频繁,可以设定为个位数。

更改完毕重启php-fpm服务。

测试php更新文件,基本立即生效。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值