让mod_geoip在Apache 2.2.17中使用mod_wsgi

时间:2011-03-25 16:19:51

标签: django wsgi geoip

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

1 个答案:

答案 0 :(得分:1)

如果变量由扩展模块设置为环境变量,则可以访问:

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

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


更新1:

如果设置在一个Apache模块内部,例如mod_geoip,那么将它转移到WSGI应用程序领域的唯一方法是在Apache请求结构的req.subprocess_env中设置它。也就是说,就像SetEnv指令已经与Apache一起使用一样。在这种情况下,它应该出现在传递给WSGI应用程序的WSGI环境字典中。

使用以下所示的WSGI echo test脚本尝试验证是否发生这种情况:

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