我在Apache下配置了WSGI处理程序,并在Apache虚拟主机配置中定义了一些环境变量。
SetEnv APP_CONFIG "/var/lib/myapp/app.config"
SetEnv LOG_CONFIG "/var/lib/myapp/app.logging.yml"
要在开发过程中测试处理程序而不必安装和配置Apache,我将uWSGI
与--http
选项一起使用。
uwsgi --http :9090 --ini uwsgi.ini --wsgi-file wsgi.py
wsgi.py
def application(environ, start_response):
config_file_path = environ['APP_CONFIG']
start_response('200 OK', [('Content-Type','text/html')])
return ["Hello World"]
如何使用uWSGI http服务器将这些变量作为environ
参数的一部分传递给我的应用程序?
我尝试在uwsgi.ini文件中设置环境变量:
[uwsgi]
env = APP_CONFIG="/var/lib/myapp/app.config"
但是我得到了
File "wsgi.py", line 5, in application
config_file_path = environ['APP_CONFIG']
KeyError: 'APP_CONFIG'
答案 0 :(得分:1)
https://appsnomad.com/blog/how-to-put-environment-variable-in-uwsgi-config/29
[uwsgi]
env = RAY_REDIS_PASS=ray_pass
env = RAY_REDIS_PORT=6380
strict = true
chdir = /Users/judas/projects/myapp
master-fifo = /tmp/myapp_fifo0
master-fifo = /tmp/myapp_fifo1
module = myapp.wsgi:application
master = true
vacuum = true
need-app = true
processes = 4
die-on-term = true
procname-prefix = myapp
harakiri = 30
socket = /tmp/myapp_uwsgi.sock
lazy-apps = true
logger = file:logfile=/tmp/apps.log,maxsize=2000000000
import = postfork
答案 1 :(得分:1)
正如 https://stackoverflow.com/a/18490958/3383797 中指出的不要使用空格:
[uwsgi]
env=MY_VAR_NAME=foobar
答案 2 :(得分:0)
我认为您只需要指定.ini文件
uwsgi --ini uwsgi.ini --http = :9090 --wsgi-file wsgi.py
答案 3 :(得分:0)
我在addvar
中发现了如何使用wsgi.ini
来做到这一点:
[uwsgi]
route-run = addvar:APP_CONFIG="/var/lib/myapp/app.config"