【问题标题】:Adding parameters to the wsgi script alias向 wsgi 脚本别名添加参数
【发布时间】:2012-11-07 23:00:12
【问题描述】:

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

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

WSGIScriptAlias / /foor/bar/wsgi.py baz

编辑澄清

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

【问题讨论】:

  • 不,但是我不知道您要解决的原始问题是什么以及这意味着什么?仅仅询问这是否可行并不能告诉我们您需要什么,因此我们无法告诉您如何做您想做的事?

标签: python apache wsgi


【解决方案1】:

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

然后你可以在你的 WSGI 脚本文件中做:

import mod_wsgi

process_group = mod_wsgi.process_group

然后您可以使用进程组的名称来区分哪个配置。

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

【讨论】:

    【解决方案2】:

    如果您使用 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']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-17
      • 1970-01-01
      • 1970-01-01
      • 2021-11-11
      • 2013-06-20
      • 1970-01-01
      • 2021-12-31
      • 1970-01-01
      相关资源
      最近更新 更多