乘客和Nginx无法在生产模式下运行Rails应用程序

问题描述 投票:1回答:1

我有一个使用rvm和psql配置的ubuntu EC2实例,之后我通过bitbucket在EC2实例上克隆了我的rails应用程序。 通过这个数字海洋的链接,我在实例上安装了passenger和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?时,该应用程序仍在开发环境中运行Rails.env.production? 在控制台中,我得到了错误的结果,既然我已经删除了提及开发环境的设置,那么乘客是否应该不应该暗中假设应用程序处于生产模式? 任何帮助都值得赞赏。 非常感谢。 同样,在我对配置文件进行的每次更改之后,我还运行sudo nginx -s reloadsudo service nginx restart

ruby-on-rails ruby nginx amazon-ec2 passenger
1个回答
1
投票

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

passenger_app_env production;
© www.soinside.com 2019 - 2024. All rights reserved.