nginx.conf-没有在rails中加载passenger_env_var

时间:2018-09-18 12:19:58

标签: ruby-on-rails nginx passenger

我在nginx.conf中定义了环境变量,如下所示-

 server {
        listen       80;
        server_name  XX.XX.XX.XX; //Masked for this question

        location ~ ^/clients/abc(/.*|$) {
                alias /home/abc/Project/public$1;
                passenger_base_uri /clients/abc;
                passenger_app_root /home/abc/Project;
                passenger_document_root /home/abc/Project/public;
                passenger_enabled on;
                passenger_env_var AWS_U disha;
        }
}

我重新启动了nginx,但是当我打开rails c并键入ENV['AWS_U']时,它将返回nil

我可能做错了什么?

2 个答案:

答案 0 :(得分:0)

您需要将passenger_env_var指令移至server部分。

server {
   ...
   passenger_env_var VAR value;
}

答案 1 :(得分:0)

仅当旅客下载应用程序时设置环境变量。通过rails c命令启动应用程序时未设置它们。

如果您想了解乘客加载的正在运行的应用程序上的环境变量的值,可以执行临时操作以进行调试:

class DebugController < ApplicationController
  def foobar
    render plain: "FOOBAR = '#{ENV['FOOBAR']}'"
  end
end

Rails.application.routes.draw do
  get "/debug/foobar" => "debug#foobar"
end