我们有两个具有相同代码的rails环境。一个是升级,另一个是生产。两者都使用相同的“生产”导轨设置运行。
但是,我们想知道我们所处的环境。我以为我可以在服务器上设置一个环境变量并在rails中读取它,但是,虽然这可以从控制台起作用,但在乘客后面运行时它不起作用。
在admin用户.profile文件中我有:
export MC_TEST=true
但是运行的nginx /乘客似乎并不在同一个环境中,并且没有设置该变量。
我想我可能会在nginx.conf中添加一些内容以传回rails环境,但显然我也没有做到这一点!
那么 - 谁能告诉我如何正确地做到这一点?在任何情况下,我们都不希望在ruby / rails / app代码中使用此变量。
答案 0 :(得分:2)
在nginx配置中尝试passenger_set_cgi_param MC_TEST true
答案 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