我们假设caching是空的。
User1加载index.php(dynamic内容)。 没有caching,所以Nginx查询php文件。 服务器说“欢迎用户1”。 Nginx使用md5校验和存储网页。
User2加载index.php。 有一个页面存储在caching中,所以我们把这个页面返回给用户。 它说“欢迎用户1”,但如果我们已经调用了PHP脚本,它将返回“欢迎用户2”。
Nginx怎么知道是否再次调用php脚本? 我的caching的反向代理很好,返回dynamic内容,但我想这不只是“魔术”。
这是PHP脚本返回一个头告诉Nginx不caching?
响应caching由HTTP Cache-Control响应头Cache-Control 。
如果设置为no-cache或private ,那么您的反向代理将不会caching文档。 通常, private用于发送给login用户的页面; 这意味着代理不能caching文档,但是浏览器可以这样做。
您可以在RFC 2616第14.9节及以后的版本中看到Cache-Control完整细节。