我正在尝试将 Nginx 设置为在 Unicorn 上运行的 Rails 应用程序的反向代理。
我的应用程序有一些公共页面,我想将它们缓存 60 分钟,因此我设置了 max-age 标头。
此外,我已将 proxy_cache 选项添加到 Nginx 中的服务器块中。
proxy_cache default;
Run Code Online (Sandbox Code Playgroud)
并定义了这个缓存
proxy_cache_path /var/www/nginx_cache keys_zone=default:10m max_size=500m;
Run Code Online (Sandbox Code Playgroud)
我已设置我的应用程序以将此标头添加到我的可缓存响应中
Cache-Control: max-age=3600, public
Run Code Online (Sandbox Code Playgroud)
当客户端第一次访问该页面时,将呈现该页面并返回响应。然而,在随后的请求中,nginx 不会减少 max-age 计数器。
因此,访问者可能会在页面过期前一分钟访问我的页面,这意味着他看到的是 59 分钟前的内容。但随后将此副本在他的浏览器中再保留 60 分钟,然后他就会获得新副本。
我可以让 Nginx 减去经过的时间,这样如果访问者访问已在 Nginx 缓存中 25 分钟的页面,则 max-age 将为 35 分钟(2100 秒)?
小智 1
你的做法完全错误。
请阅读有关 Nginx 代理缓存的更多信息 http://nginx.org/en/docs/http/ngx_http_proxy_module.html
这也很有用: How to set up Nginx as a caching reverse proxy?
| 归档时间: |
|
| 查看次数: |
858 次 |
| 最近记录: |