我有一个配置了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 reload
和sudo service nginx restart
。
答案 0 :(得分:1)
我认为您应该在server
之后将其添加到配置的passenger_enabled on
块中:
passenger_app_env production;