Vagrant下共享目录静态文件(js/jpg/png等)“缓存”问题

之前提到说通过Vagrant部署开发环境,使用目录共享模式,在本地磁盘进行开发,而通过虚拟机环境运行开发的页面。

是的,一切看起来都是那么的顺利,首先基于VirtualBox安装了Vagrant,接下来,按照以往部署环境的习惯,在VM中安装了nginx作为开发运行环境,并且将本地的共享目录作为nginx的web目录,然后打开页面,看上去似乎都很正常,但接下来,你发现了一个神奇的事情,你修改替换了一个css,一张图片,然后刷新浏览器,发现什么都没有变,然后你有非常猛烈、使劲的F5,依旧还是没有改变,是的,你看看编辑器,似乎替换是正常的,在看看VM上的文件,也都是对的,是的,尝试重启nginx,依旧没有任何变化,你开始怀疑php5-fpm甚至于毫不相干的memcached和mysql,但都无济于事。也不知道是什么让这些文件被“缓存”了呢。

当你尝试修改一个js,并且用同样的方法更新之后,会遇到类似的问题,是的,就算重启VM上任何服务,甚至重启VM,依旧没有用,当然,比起其他资源文件,浏览器的反应会强烈一些,因为浏览器会提示未知错误,而你通过浏览器查看你修改的JS文件,会看到文件尾巴有下面奇怪的随机字符:

�����������������

这到底是什么东西呢?编码错误?缓存异常?又或是其他什么?

是的,你尝试花费很多时间,试验各种各样的方法去解决这个问题,其实对于nginx来说,你只需要修改配置文件(nginx.conf)中的一行重启就能简单的解决这个问题:

sendfile off;

找到 nginx.conf ,把里面的 “sendfile on” 修改为 “sendfile off”。

当然,如果你使用Apache也可能遇到类似的问题,那么同样也有类似的配置需要修改:

EnableSendfile off

关于这个问题的参照:
https://github.com/mitchellh/vagrant/issues/351#issuecomment-1339640

http://stackoverflow.com/questions/9479117/vagrant-virtualbox-apache2-strange-cache-behaviour

IXWebhosting 的速度优化

相信很多朋友和我一样,当初选择海外主机的时候“不慎”选择了IXWebhosting。当然,其实IX的价格并不是很有优势,选择的原因一是当时Godaddy还未支持支付宝,而且IX的独立IP还是很让人眼红的。
IX的服务器其实并不差,性能测试来看相当好,带宽也很足,我在VPS下载IX上的数据可以达到8M/s的速度。但是他的缺点就是对于中国的速度并不快,两方面原因,一来是其机房在美国中部,物理距离造成不可避免的延时,再者就是其走到中国电信的线路的是传说中抽风大户Level 3(只是部分IP,我也碰到不是走L3的IP)。所以说用IX作服务于国外用户的英文站或是外贸站还是非常好的,但是如果要服务于天朝用户就有些吃力了。
于是当时既然买了(因为几个哥们合买的,他们觉得凑合啊),还是要用的,怎么用呢,首先,IX服务器性能还是很好的,跑站是非常流畅的,我将他作为后台支撑,然后在Las Vegas用Nginx + proxy_cache构建CDN,这样虽然等于放弃了IX的优势,独立IP,但也不用使用IX的共享IP,同样是自己几个站公用IP,只要自己不出问题就不怕墙,CDN本身对静态内容(伪静态也算)又具有缓存作用,减少原空间CPU负担,而主机走的线路(目前来说)电信是PCCW,虽然不比Peer1的电信直连,但总体速度稳定性上还是相当不错的。
顺便目前有一些闲置资源,你可以通过顶部AboutMe联系我咨询。