Как установить переменные среды, чтобы они были доступны моему приложению rails, размещенному внутри nginx / пассажира?
Один из способов добиться этого - заменить имя пассажира_ruby сценарием-оболочкой.
http {
...
passenger_ruby /usr/bin/ruby
к
http {
...
passenger_ruby /path/to/passenger_ruby
пассажир_ruby - это сценарий оболочки со следующим содержимым:
#!/bin/sh
export MY_ENV="value"
exec "/usr/bin/ruby" "$@"
Как упоминалось выше, «sudo env VAR = VALUE nginx» решила мою проблему.
Я пробовал несколько разных nginx, включая пассажира_set_cgi_param, env и fast_cgi_param. К сожалению, ни один из них не помог мне. В конце концов, я экспортировал их как переменные bash в сценарий запуска, который я использовал для запуска nginx.
Можешь попробовать dotenv gem, который загружает переменные env из файла по вашему выбору.