Ruby on rails nginx.conf-乘客环境变量未加载到轨道中
我在nginx.conf中定义了环境变量,如下所示-Ruby on rails nginx.conf-乘客环境变量未加载到轨道中,ruby-on-rails,nginx,passenger,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
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_']]
时,它返回nil
我可能做错了什么?您需要将
passenger\U env\U var
指令移动到server
部分
server {
...
passenger_env_var VAR value;
}
仅当乘客加载应用程序时才设置环境变量。当应用程序通过
rails c
命令启动时,不会设置它们
如果您想知道Passenger加载的正在运行的应用程序上的环境变量的值,您可以执行一个临时调试操作:
class DebugController < ApplicationController
def foobar
render plain: "FOOBAR = '#{ENV['FOOBAR']}'"
end
end
Rails.application.routes.draw do
get "/debug/foobar" => "debug#foobar"
end
class-DebugController“debug#foobar”
结束
您是否可以移动乘客\u启用代码>乘客环境变量AWS\U disha代码>位于位置
之外,进入服务器
块。参考说明此指令可在位置上下文中使用。当我尝试在服务器和位置上下文中使用该指令时,它起了作用。在我看来,提问者遇到了另一个问题。