konakona
解决PHP Expires 导致CDN出现TCP_MISS
解决PHP Expires 导致CDN出现TCP_MISS

因为这个缘故,CDN的 x-Cache总是MISS TCP_MISS,导致要回源。

查了半个小时,终于找到原因了。

http://blog.crazyphper.com/wp-content/uploads/2018/04/81-300x155.jpeg

(问题图片)

 

来自session.c:

见:http://php.net/manual/en/function.session-cache-limiter.php

在session_start() 之前添加session_cache_limiter(’public’)以启用缓存。

如果你用的是框架,我建议放在入口index.php里,以ThinkPHP为例的话是这样:

ThinkPHP还要修改配置config.php 增加HTTP_CACHE_CONTROL=public(见ThinkPHP/Lib/Core/View.class.php Line 92 render()方法)。

 

说个题外话,Pragma: no-cache可以应用到http 1.0 和http 1.1,而Cache-Control: no-cache只能应用于http 1.1.<html>默认是1.0好像,但是CDN才不管你http协议是什么,用2个参数做全等判断的。如果要CDN产生MEM HIT,你可以:

删除header里的Cache-Control和Pragma,或只用一种,取决于你网页头部的<html>协议用的是几

Pragma和Cache-Control的值应该保持一致,否则网页本身可能出问题(表单方面,尤其是用了令牌的表单)

 

 

赞赏
http://0.gravatar.com/avatar/3b712b34a0e1b689cfb524c9c6bcdc47?s=256&r=g

团哥

文章作者

继续玩我的CODE,让别人说去。 低调,就是这么自信。

konakona

解决PHP Expires 导致CDN出现TCP_MISS
因为这个缘故,CDN的 x-Cache总是MISS TCP_MISS,导致要回源。 查了半个小时,终于找到原因了。 (问题图片)   来自session.c: [crayon-5c16959a53bb5046684593/] 见…
扫描二维码继续阅读
2018-04-20