我已经创建了新的环境"staging"。在本地,它是有效的。我是这样运行的:
RAILS_ENV=staging passenger start
在服务器上,我使用Nginx+乘客。在虚拟主机设置中,我写过:
server {
listen 443;
server_name test.myapp.com;
rails_env staging;
root /home/admin/myapp/current/public; # <-- be sure to point to 'public'
passenger_enabled on;
ssl on;
ssl_certificate /home/admin/ssl/server.crt;
ssl_certificate_key /home/admin/ssl/server.key;
}
server {
listen 80;
server_name test.myapp.com;
root /home/admin/myapp/current/public;
rewrite ^ https://$server_name$request_uri? permanent;
}
但该应用程序仍在生产中运行。它加载生产数据库,而不是暂存。重新加载Nginx没有帮助。怎么了?
我认为您缺少rails_env
设置。
server {
...
rails_env staging;
}
用户的.bashrc或.zshrc是否包含RAILS_ENV设置?如果是,则可能会覆盖NGINX设置。