4

有没有办法将额外的参数传递给 WSGIScriptAlias?例如:

WSGIScriptAlias / /foo/bar/wsgi.py但我想要的是:

WSGIScriptAlias / /foor/bar/wsgi.py baz

编辑澄清

我有一个 Django 项目,它具有基于其运行环境(基于云的部署)的多种配置。目前,我正在加载基于主机名的配置(我不太满意,因为它不适合在不更改系统主机名的情况下在一台机器上测试多个配置)。因此,另一种解决方案是将命令行参数传递给应用程序并在 WSGI 入口点加载配置,这在运行开发服务器时相对简单,但我不知道有任何方法可以通过 Apache/ WSGI。

4

2 回答 2

4

首先,确保您使用的是守护程序模式,无论如何它都是首选。

然后在您的 WSGI 脚本文件中,您可以执行以下操作:

import mod_wsgi

process_group = mod_wsgi.process_group

然后,您可以使用进程组的名称作为区分哪个配置的一种方式。

换句话说,使用您选择在 Apache 配置文件中使用的守护进程组的名称作为区分因素。

于 2012-11-20T04:41:48.853 回答
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']
于 2020-04-18T00:37:51.843 回答