passenger / nginx - 环境变量传递,或乘客变量传递

时间:2012-03-10 16:57:15

标签: ruby-on-rails nginx passenger

我们有两个具有相同代码的rails环境。一个是升级,另一个是生产。两者都使用相同的“生产”导轨设置运行。

但是,我们想知道我们所处的环境。我以为我可以在服务器上设置一个环境变量并在rails中读取它,但是,虽然这可以从控制台起作用,但在乘客后面运行时它不起作用。

在admin用户.profile文件中我有:

export MC_TEST=true

但是运行的nginx /乘客似乎并不在同一个环境中,并且没有设置该变量。

我想我可能会在nginx.conf中添加一些内容以传回rails环境,但显然我也没有做到这一点!

那么 - 谁能告诉我如何正确地做到这一点?在任何情况下,我们都不希望在ruby / rails / app代码中使用此变量。

2 个答案:

答案 0 :(得分:2)

在nginx配置中尝试passenger_set_cgi_param MC_TEST true

passenger_set_cgi_param docs

答案 1 :(得分:2)

如果您正在使用带乘客的nginx(即nginx安装中包含的乘客),配置如下:

server {
    server_name www.foo.com;
    root /webapps/foo/public;
    passenger_enabled on;

    passenger_env_var DATABASE_USERNAME foo_db;
    passenger_env_var DATABASE_PASSWORD secret;
}

https://www.phusionpassenger.com/library/config/nginx/reference/#passenger_env_var

相关问题