【问题标题】:How to add vary custom header如何添加不同的自定义标题
【发布时间】:2018-11-28 05:16:03
【问题描述】:

我的应用程序正在根据用户国家代码更改内容。

服务器请求流程

https 请求 -> nginx 处理 ssl 终止 -> varnish -> 如果没有缓存,则从 apache 获取内容

http rquest -> varnish -> 重定向到 https 链接 -> nginx 处理 ssl 终止 -> varnish -> 如果未缓存则从 apache 获取内容

使用 varnish GeoIP 模块,我找到了用户国家代码并将值设置为标头 req.http.X-Country-Code 我在应用程序中读取了此标头值。

问题:它总是缓存第一个命中并提供给所有位置

我希望添加不同的标头可以解决我的问题,请您指导我吗?

我不确定在哪里添加不同的标头 nginx 或 apache。

【问题讨论】:

    标签: apache nginx varnish vary


    【解决方案1】:

    添加 Vary 标头应该可以解决问题,如果您可以访问支持的代码,则最好在 Varnish 中更改 hash

    在哪里添加呢?最好的地方是在应用程序中进行。应用程序决定提供什么,它应该有权决定缓存什么以及何时缓存,毕竟您将来可以用其他东西替换 nginx 或 Varnish,并且您和客户端之间可能还有其他缓存。

    【讨论】:

    • 我在应用程序 (php) 中添加了它的工作原理 :-) header('Vary: X-Country-Code'); $countryCode = $_SERVER['HTTP_X_COUNTRY_CODE'];
    猜你喜欢
    • 1970-01-01
    • 2020-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-22
    • 2010-12-30
    相关资源
    最近更新 更多