пассажир/nginx - передача переменной окружения или передача переменной пассажира

У нас есть 2 среды rails с одинаковым кодом. Один постановочный, другой постановочный. Оба запускаются с использованием одних и тех же «производственных» настроек рельсов.

Но мы хотели бы знать, в какой среде мы находимся. Я думал, что могу установить переменную среды на серверах и прочитать ее внутри рельсов, но, хотя это работает с консоли, это не работает при беге за пассажиром.

в файле .profile пользователей администратора у меня есть:

export MC_TEST=true

Но работающие nginx/пассажиры, похоже, не находятся в той же среде, и эта переменная не установлена.

Я подумал, что тогда я мог бы добавить что-то в nginx.conf, чтобы вернуться в среду rails, но, очевидно, я тоже делаю это неправильно!

Итак, может ли кто-нибудь сказать мне, как правильно это сделать? Ни при каких обстоятельствах нам не нужна эта переменная в коде ruby/rails/app.


person phil    schedule 10.03.2012    source источник
comment
даже помещение его в файл /etc/environment, похоже, не поместит его в среду rails   -  person phil    schedule 10.03.2012


Ответы (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

person juz    schedule 27.04.2016

Попробуйте passenger_set_cgi_param MC_TEST true в своей конфигурации nginx

passenger_set_cgi_param документы

person John Douthat    schedule 12.03.2012