我尝试按照页面https://gorails.com/deploy/ubuntu/14.04上的指南,通过Capistrano在Nginx和Ubuntu上部署我的Rails应用程序。 但是最后我收到了一个错误消息:
Incomplete response received from application
在我的浏览器中出现了问题。这可能是由于Passenger引起的,但我应该怎么办才能弄清楚该做什么?
我尝试按照页面https://gorails.com/deploy/ubuntu/14.04上的指南,通过Capistrano在Nginx和Ubuntu上部署我的Rails应用程序。 但是最后我收到了一个错误消息:
Incomplete response received from application
在我的浏览器中出现了问题。这可能是由于Passenger引起的,但我应该怎么办才能弄清楚该做什么?
您的rails_env生产环境没有必要的设置,可能缺少secret_key_base。
打开/etc/nginx/sites-available/default
,并将rails_env更改为development:
rails_env production;
to
rails_env development;
如果应用正在加载,则不是乘客的问题。
生产解决方案:
rake secret
/yourapp/config/secrets.yml
secret_key_base
重新启动乘客应用程序:
touch /yourapp/tmp/restart.txt
export SECRET_KEY_BASE=12345678910111212andmore
- juicy这个错误是因为您没有设置 secret_key_base 导致的。按照以下步骤修复它:
进入您的 Rails 应用程序目录
cd /path/rails-app
生成秘密密钥基础
rake secret RAILS_ENV=production
设置环境变量
SECRET_KEY_BASE=<the-secret-key-base>
重启 Rails 应用程序
touch /path/rails-app/tmp/restart.txt
对于使用Passenger的用户:
• 导航到您项目的根目录。
• 运行bundle exec rake secret RAILS_ENV=production
• 复制输出,然后运行sudo nano config/secrets.yml
• 在production
下,用最近复制的rake secret替换secret_key_base
的值。
• 按CNTRL+X
,然后按y
,最后按enter
。
• 运行passenger-config restart-app
并选择要重新启动的应用程序。
https://www.phusionpassenger.com/library/admin/apache/restart_app.html
mysql
服务器未运行时,我也遇到了这个错误。以防万一有人遇到相同的错误,请尝试 启动/重启
数据库。有没有像我一样在上传文件后遇到这个错误的人?
我的解决方案是检查文件名,可能包含一些特殊字符,如`[(~。
只需将其删除,然后重新上传文件即可。
祝好运~
我在测试服务器上遇到了这个问题,而在生产环境中没有出现过。原因是我请求了一个不存在的URL,在测试环境下,Rails会抛出一个错误而不是返回404响应。
passenger_buffer_response off;
吗?https://dev59.com/Y2bWa4cB1Zd3GeqPZ7wl - user1454117passenger_buffer_response_off
与他的问题无关,也无法解决问题。很久以前,响应缓冲代码中存在一个错误,但该错误已经被修复了,因此您在 StackOverflow 上发布的帖子中提到的解决方案不再适用。 - Hongli