0

有没有一种方法可以分发一个 WSGI 应用程序,它可以在任何服务器上开箱即用,并且只能使用服务器的内置功能进行配置?这意味着管理员必须接触的唯一配置文件是服务器的配置文件。无需在 Python 中编写自定义 WSGI 脚本。

mod_wsgi 将配置变量添加SetEnv到传递给应用程序的 WSGI 环境字典中,但我没有找到一种方法来使用 Gunicorn 或 uWSGI 做类似的事情。使用os.environ适用于 Gunicorn 和 uWSGI,但不适用于 mod_wsgi,因为SetEnv不影响os.environ.

4

2 回答 2

1

environ和都是os.environ映射。

servername = environ.get('servername', os.environ.get('servername', 'localhost))
于 2013-01-11T12:26:17.563 回答
0

在 uWSGI(如果使用 uwsgi 协议)中,您可以使用 nginx 中的 uwsgi_param 键值、apache 中的 SetEnv(mod_uwsgi 和 mod_proxy_uwsgi)、Cherokee 的 cgi var 和 uwsgi http 路由器的 --http-var 传递其他变量。

对于 http 协议(在 gunicorn 或 uWSGI http-socket 中),我想到的唯一解决方案是在代理配置中添加特殊的标头,您将在 wsgi 应用程序中解析这些标头(http 标头被重写为前缀为 HTTP_ 的 cgi vars)

于 2013-01-11T19:12:07.333 回答