【问题标题】:Wsgi custom field in request header请求标头中的 Wsgi 自定义字段
【发布时间】:2014-05-26 15:57:54
【问题描述】:

我对 apache2 和 wsgi 有疑问 我向我的服务器发送了一个请求,其中包含标头(HTTP_X_SOURCE)中的自定义字段,而 apache2(或 wsgi)阻止了该字段。 请求 => apache2 => web.py

有人知道为什么 apache2 或 wsgi 会屏蔽这个字段吗?

【问题讨论】:

    标签: python apache ubuntu request wsgi


    【解决方案1】:

    我在这里找到答案http://httpd.apache.org/docs/current/env.html#fixheader

    “HTTP_X_SOURCE”中的“_”字符被禁止。 出于安全原因,Apache 2.4 比 apache 2.2 更严格。

    【讨论】:

    • 总而言之,您的标头并非应有的“X-Source”。
    【解决方案2】:

    用途:

    验证它是否到达托管在 mod_wsgi 下的 WSGI 应用程序。

    它应该通过。问题可能是您尝试在 web.py 中访问它的方式,但您没有显示如何执行此操作的代码。

    【讨论】:

    • 我使用 web.ctx.env web.ctx.env.get('HTTP_X_SOURCE') 访问这个变量 这个代码在另一个带有 apache 2 和 wsgi 的服务器上运行良好。在我的新服务器(ubuntu 13)上使用纯 web.py(没有 apache 没有 wsgi)进行测试,变量通过 apache2-wsgi+web.py 测试,变量不通过在我的旧服务器(ubuntu 12)上使用纯测试web.py (no apache no wsgi),变量通过测试 apache2-wsgi+web.py 变量也通过了
    【解决方案3】:

    我使用 web.ctx.env 访问这个变量

    web.ctx.env.get('HTTP_X_SOURCE')

    此代码在另一台装有 apache 2 和 wsgi 的服务器上运行良好。

    在我的新服务器上 (ubuntu 13)

    用纯 web.py(没有 apache 没有 wsgi)测试,变量 pass

    用 apache2-wsgi+web.py 测试变量不通过

    在我的旧服务器上 (ubuntu 12)

    用纯 web.py(没有 apache 没有 wsgi)测试,变量 pass

    用 apache2-wsgi+web.py 测试变量也通过了

    【讨论】:

      猜你喜欢
      • 2014-11-17
      • 2017-09-28
      • 2023-03-21
      • 2016-06-24
      • 2013-03-05
      • 2011-03-04
      • 2014-08-08
      • 2013-11-13
      相关资源
      最近更新 更多