Nginx如何反向代理caching工作?

我不明白如何与caching反向代理工程。

我们假设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-cacheprivate ,那么您的反向代理将不会caching文档。 通常, private用于发送给login用户的页面; 这意味着代理不能caching文档,但是浏览器可以这样做。

您可以在RFC 2616第14.9节及以后的版本中看到Cache-Control完整细节。