Passenger和Nginx无法在生产模式下运行rails应用程序

时间:2015-04-22 13:05:34

标签: ruby-on-rails ruby nginx amazon-ec2 passenger

我有一个配置了rvm和psql的ubuntu EC2实例,之后我通过bitbucket在EC2实例上克隆了我的rails应用程序。 在这个数字海洋link之后,我在我的实例上安装了乘客和nginx,并在我的服务器配置中设置了passenger_app_env development;。 现在我想在生产模式下使用该应用程序,我从配置中删除了这一行,目前我的服务器配置如下:

    server {
       #listen 80 default_server;
        listen   443 ssl;
        ssl         on;
        server_name **.**.**.**;
        passenger_enabled on;
        rails_env production;
        root /home/ubuntu/my_app/public;
        ssl_certificate /home/ubuntu/my_app/my_app.pem;
        ssl_certificate_key /home/ubuntu/my_app/my_app.key;
}

server {
       listen         80;
       server_name    **.***.**.**;
       return         301 https://$server_name$request_uri;
}

应用程序仍在开发环境中运行,因为当我在控制台中执行Rails.env.production?时,我得到错误的结果,不应该乘客隐含地假设应用程序处于生产模式,因为我已经删除了设置提到开发环境?任何形式的帮助,不胜感激。非常感谢。在我在配置文件中进行的每次更改后,我还运行sudo nginx -s reloadsudo service nginx restart

1 个答案:

答案 0 :(得分:1)

我认为您应该在server之后将其添加到配置的passenger_enabled on块中:

passenger_app_env production;