有没有办法将额外的参数传递给WSGIScriptAlias?例如:
WSGIScriptAlias / /foo/bar/wsgi.py
但我想要的是:
WSGIScriptAlias / /foor/bar/wsgi.py baz
编辑以澄清:
我有一个基于其运行环境(基于云的部署)的多个配置的Django项目。目前,我正在加载基于主机名的配置(我对此并不满意,因为它不适合在一台机器上测试多个配置而不更改系统的主机名)。因此,另一种解决方案是将命令行参数传递给应用程序并在WSGI入口点加载配置,这在运行开发服务器时相对简单,但我不知道有任何方法可以通过Apache / WSGI。
答案 0 :(得分:4)
首先,确保您使用的是守护进程模式,无论如何都是首选。
然后在您的WSGI脚本文件中,您可以执行以下操作:
import mod_wsgi
process_group = mod_wsgi.process_group
然后,您可以使用进程组的名称来区分哪种配置。
换句话说,使用您在Apache配置文件中选择使用的守护程序进程组的名称作为区别因素。
答案 1 :(得分:0)
如果您使用的是mod_wsgi,则可以在设置时利用envvars选项。
例如:
mod_wsgi-express start-server ./my-wsgi.py --port 8200 --envvars-script /home/user/envvars_localhost.sh
在envvars文件“ envvars_localhost.sh”中,设置一些所需的参数:
#!/bin/bash
export MOD_WSGI_VARIABLE='config1'
然后在运行时,您的./my-wsgi.py可以引用数据:
mylocalConfigValue = os.environ['MOD_WSGI_VARIABLE']