如何使WSGI应用程序可由任何服务器配置?

时间:2013-01-11 11:24:11

标签: python wsgi

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

mod_wsgi将使用SetEnv设置的配置变量添加到传递给应用程序的WSGI环境字典中,但我没有找到与Gunicorn或uWSGI类似的方法。使用os.environ可以使用Gunicorn和uWSGI但不能使用mod_wsgi,因为SetEnv不会影响os.environ

2 个答案:

答案 0 :(得分:1)

environos.environ都是映射。

servername = environ.get('servername', os.environ.get('servername', 'localhost))

答案 1 :(得分:0)

在uWSGI中(如果使用uwsgi协议),你可以在nginx中传递uwsgi_param键值的附加变量,在apache中使用setEnv(mod_uwsgi和mod_proxy_uwsgi),使用切诺基的cgi变量和使用uwsgi http路由器的-http-var。

对于http协议(在gunicorn或uWSGI http-socket中),我脑海中浮现的唯一解决方案是在代理配置中添加特殊标头,您将在wsgi应用程序中解析(http标头被重写为带有HTTP_前缀的cgi变量)