今天在使用Django的缓存时发现一个问题,在对多个站点使用per view cached的时候,
site1.com的首页会和site2.com的首页发生混淆,访问site2.com的时候 可能会变成site1.com
从uwsgi supervisor几个地方找了很久也没找到问题在哪里
最后确定问题出现在缓存上
由于使用的是同一个virtualenv下的Django,所以应该是memcached key的问题
最开始在Django的文档上找到要在settings.py中设置CACHE_MIDDLEWARE_KEY_PREFIX变量
但那只对per site cached起作用 对per site cached会报错
之后又看到了per view cache 的key_prefix参数,需添加这个参数 才不会引起缓存冲突
如:
@cache_page(60 * 15, key_prefix="site1")
def my_view(request):
...
第一次把一个主机用满一年——告别主机格调。
之前博客在西门家的主机格调呆了一年。用的东京最便宜的那种型号(详情点这里)。
总体感觉很好,在线率也很高 而且所有的无法连接都发生在半夜,对访问几乎没有影响。
其实我博客每天10个IP,就算全天无法连接也是无影响的。
这个事情就在今天发生了,早上发现博客打不开,不是无法连接,而是账户被暂停,
当时我就笑了,第一次坚持让年付的主机钱没有打水漂的感觉很棒~~
结果它尽然是流量超了(每月5G,这也是唯一一次超流量,原因不明,但肯定有不正常的情况,这才11号啊)
联系西门,2分钟响应,由于本来还有几天就到期了,西门大大就问我是否需要续费。
老实说,对方态度很好,我都有些不忍心不续费,
但是想到自己花的都是父母的钱,而且又有VPS还没有用满CPU和内存资源(我一贯坚持VPS内存不用满就是浪费的原则),索性一狠心,就说不续费了。
希望西门大大不要桑心。
附图:近一个月的可用率
现在换到了自己的VPS上。这个enzu的线路说实话比较悲剧(价格便宜啊 45CNY 4IP 1G RAM),但是用了memcached做缓存,js,css神码的该压缩也压缩了,希望速度不会差到哪里去。