【问题标题】:Headers added in mod_wsgi not properly recognized by Apache?Apache 无法正确识别 mod_wsgi 中添加的标头?
【发布时间】:2011-08-24 08:36:30
【问题描述】:

我有一个 django 应用程序,它使用 SessionMiddleware 在 Apache 的 mod_wsgi 守护程序模式下运行。我的 Apache 配置还包含一个标准的 mod_deflate 配置和 mod_cache/mod_disk_cache 以提高性能。

我的问题是 django 的 SessionMiddleware 设置的 Vary: Cookie 没有被 mod_cache 正确识别,尽管请求 cookie 不同,但它正在提供页面的缓存版本。删除 mod_deflate 可以解决问题。 Setting Vary: Cookie in Apache with mod_headers(不管 django 中间件)也解决了这个问题(这是我的临时解决方法)。

我注意到,在玩这个的时候,似乎有一些情况是 mod_wsgi 应用程序中设置的标头没有被之后出现的一些 Apache 模块正确识别,这对任何人来说意味着什么吗?

我有非常标准的 wsgi(附加)和 Apache 配置,如果有任何其他数据可以提供帮助,请告诉我。我正在运行股票 ubuntu natty libapache2-mod-wsgi 3.3-2ubuntu2、Apache 2.2.17、django 1.3

【问题讨论】:

    标签: django apache mod-wsgi wsgi mod-cache


    【解决方案1】:

    第一步,使用:

    http://code.google.com/p/modwsgi/wiki/DebuggingTechniques#Tracking_Request_and_Response

    验证实际从 WSGI 应用程序输出并传递给 mod_wsgi 的内容。

    我想不出 mod_wsgi 会导致问题的任何原因,而且听起来更像是 Apache 输出过滤器排序的问题。

    顺便说一句,这是在 mod_wsgi 邮件列表中更好处理的问题。通过 StackOverflow 调试问题很糟糕。

    【讨论】:

    • 感谢您的建议!我可以清楚地看到 WSGI 响应中的 Vary: Cookie 标头,所以这看起来完全没问题 - 我想你是对的,它更多的是关于 Apache 输出过滤器!
    猜你喜欢
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多