所以我想根据用户的URL(或至少用户的域)从WSGI文件中调用不同的Python代码实例。我们正在运行Apache 2.x + Python + Django堆栈。
在WSGI脚本(here和here)中可以访问的os.environ
字典中看起来应该有类似“SERVER_NAME”或“HTTP_HOST”的内容。但是这个密钥丢失了,这就是os.environ.__dict__
在一切正常工作时的样子:
{'data': {'LANG': 'C', 'APACHE_LOCK_DIR': 'xxx', 'TZ': 'US/Pacific', 'DJANGO_SETTINGS_MODULE': 'xxx', 'APACHE_RUN_USER': 'xxx', 'PWD': 'xxx', 'APACHE_PID_FILE': 'xxx', 'CELERY_LOADER': 'django', 'APACHE_RUN_DIR': 'xxx', 'APACHE_LOG_DIR': 'xxx', 'APACHE_RUN_GROUP': 'xxx', 'HOME': 'xxx', 'PATH': 'xxx'}}
域/ URL是一个非常基本的信息,我很惊讶我没有找到它。
更新:我已经采用了不同的方法(使用Apache Config而不是WSGI脚本)。这似乎解决了缺少WSGI环境变量的问题。感谢您的所有回复!
答案 0 :(得分:3)
您将显示当前系统环境变量的os.environ
dict与作为参数传递给wsgi应用程序的environ
混淆。路径在后者。
但是,由于您使用的是Django,因此该信息全部通过request
对象提供。