【问题标题】:passenger/nginx - environment variable passing, or passenger variable passing乘客/nginx - 环境变量传递,或乘客变量传递
【发布时间】:2012-03-10 16:57:14
【问题描述】:

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

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

在我拥有的管理员用户 .profile 文件中:

export MC_TEST=true

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

我想我可以在 nginx.conf 中放一些东西以传回 rails 环境,但显然我也没有这样做!

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

【问题讨论】:

  • 即使将其放入 /etc/environment 文件似乎也无法将其放入 rails 环境

标签: ruby-on-rails nginx passenger


【解决方案1】:

如果你使用nginx withpassenger(即nginx安装中包含的passenger),配置如下:

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

【讨论】:

    【解决方案2】:

    在你的 nginx 配置中尝试passenger_set_cgi_param MC_TEST true

    passenger_set_cgi_param docs

    【讨论】:

      猜你喜欢
      • 2012-05-19
      • 2018-09-18
      • 2013-12-29
      • 1970-01-01
      • 2018-12-02
      • 2014-07-11
      • 2010-09-09
      • 2021-09-05
      • 2021-08-27
      相关资源
      最近更新 更多