让 mod_geoip 在 Apache 2.2.17 中与 mod_wsgi 一起使用

发布于 2024-10-27 13:40:13 字数 258 浏览 5 评论 0原文

我想从以守护进程模式在 mod_wsgi 上运行的 Django 中访问 GEOIP_COUNTRY_CODE 环境变量。问题是,我可以从服务器上运行的 PHP 脚本中看到该变量,但它似乎没有通过 WSGI 传递到我的 Django 站点。 request.META.get('GEOIP_COUNTRY_CODE') 不起作用。 mod_wsgi 中是否有类似 WSGIPassAuthorization 的其他环境变量?

I'd like to access the GEOIP_COUNTRY_CODE environment variable from within Django running on mod_wsgi in daemon mode. The problem is, I can see the variable from within PHP scripts running on the server but it seems that it is not passed through WSGI to my Django site.
request.META.get('GEOIP_COUNTRY_CODE') does not work.
Is there something like WSGIPassAuthorization for additional environment variables in mod_wsgi?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

仲春光 2024-11-03 13:40:13

如果扩展模块将变量设置为环境变量,那么它将可以如下方式访问:

import os
value = os.environ['GEOIP_COUNTRY_CODE']

即,就像任何其他环境变量一样。


更新 1:

如果在 Apache 模块内部设置,例如 mod_geoip,则将其传输到 WSGI 应用程序领域的唯一方法是在 Apache 请求结构的 req.subprocess_env 中设置。即,与 Apache 使用 SetEnv 指令相同。在这种情况下,它应该出现在传递给 WSGI 应用程序的 WSGI 环境字典中。

要尝试验证是否发生这种情况,请使用

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

If the variable is set by the extension module as an environment variable, then it will be accessible as:

import os
value = os.environ['GEOIP_COUNTRY_CODE']

Ie., just like any other environment variable.


UPDATE 1:

If set inside of an Apache module however such as mod_geoip, the only way it would be transfered into WSGI application realm is if it is set in req.subprocess_env of Apache request structure. Ie., the same as if SetEnv directive had been used with Apache. In that case it should appear in the WSGI environ dictionary passed to the WSGI application.

To try and validate whether this is occuring, using WSGI echo test script shown in:

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文