"Incomplete response received from application" 来自 nginx / 乘客
"Incomplete response received from application" from nginx / passenger
我尝试在 nginx 和 ubuntu 上部署我的 rails 应用程序,就像页面 https://gorails.com/deploy/ubuntu/14.04 上的教程一样。
但最后我收到一条错误消息:
Incomplete response received from application
在我的浏览器中。
这可能是乘客的错误,但我怎么知道该怎么办?
您的 rails_env 产品没有必要的设置,可能缺少 secret_key_base。
打开/etc/nginx/sites-available/default
并将rails_env更改为开发:
rails_env production;
to
rails_env development;
如果应用正在加载,则不是乘客问题。
生产解决方案:
- 输入您的应用根目录
- 运行:
rake secret
- 复制输出
- 转到
/yourapp/config/secrets.yml
- 设置制作
secret_key_base
重新启动乘客应用程序:
touch /yourapp/tmp/restart.txt
发生此错误是因为您没有设置 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
可能是我的回答跑题了,但是当我的数据库 mysql
服务器不是 运行 时,我也遇到了这个错误。以防万一有人有同样的错误。
所以 start/restart
您的数据库可能是另一个答案。
对于使用 Passenger 的用户:
• 导航到项目的根目录。
• 运行 bundle exec rake secret RAILS_ENV=production
• 复制输出然后 运行 sudo nano config/secrets.yml
• 在 production
下,将 secret_key_base
的值替换为最近复制的 rake secret。
• 按 CNTRL+X
,然后按 y
,然后按 enter
。
• 运行 passenger-config restart-app
和 select 您希望重新启动的应用程序。
https://www.phusionpassenger.com/library/admin/apache/restart_app.html
我周末遇到了这个问题(原来我的 passenger 版本和 ruby 不兼容)。
然而,似乎没有人提到:实际错误可能出现在 /var/log/apache2/errors.log 中,而不是在任何自定义日志中。
一旦你知道了,希望你的搜索会更容易!
更新,因为我需要再次参考这个 - 这对 nginx 也适用 - /var/log/nginx/error.log
在那种情况下是你的朋友!
就我而言,这是因为我的服务器 运行 内存间歇性不足(在 PDF 生成期间)。一旦生成 PDF,一些 RAM 就会恢复,错误就会消失。
我有一个 ubuntu 服务器,内存为 500M。
我 added some swap space 并且这个错误消失了。
这意味着您的 rails 应用程序在真正到达 rails 本身之前就已经崩溃了。这可能是中间件中的异常,缺少 ENV 键,OS 级别的东西。
首先尝试在本地启动应用程序,然后执行您为在生产环境中遇到错误所做的操作。如果一切正常,请检查所有日志。检查 nginx 日志、您的乘客日志,最后检查与启动和 运行 您的应用程序有关的任何其他 OS 特定日志。
有没有人跟我一样在上传文件后出现这个错误?
我的解决方案是检查文件名,其中可能包含一些特殊字符,例如 `[(~。
只需删除它,然后重新上传文件。
祝你好运~
我得到这个,只在我的测试服务器上而不是在生产中,因为我请求的 URL 不存在,我猜在测试环境中,Rails 抛出一个错误而不是返回 404 响应。
我尝试在 nginx 和 ubuntu 上部署我的 rails 应用程序,就像页面 https://gorails.com/deploy/ubuntu/14.04 上的教程一样。 但最后我收到一条错误消息:
Incomplete response received from application
在我的浏览器中。 这可能是乘客的错误,但我怎么知道该怎么办?
您的 rails_env 产品没有必要的设置,可能缺少 secret_key_base。
打开/etc/nginx/sites-available/default
并将rails_env更改为开发:
rails_env production;
to
rails_env development;
如果应用正在加载,则不是乘客问题。
生产解决方案:
- 输入您的应用根目录
- 运行:
rake secret
- 复制输出
- 转到
/yourapp/config/secrets.yml
- 设置制作
secret_key_base
重新启动乘客应用程序:
touch /yourapp/tmp/restart.txt
发生此错误是因为您没有设置 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
可能是我的回答跑题了,但是当我的数据库 mysql
服务器不是 运行 时,我也遇到了这个错误。以防万一有人有同样的错误。
所以 start/restart
您的数据库可能是另一个答案。
对于使用 Passenger 的用户:
• 导航到项目的根目录。
• 运行 bundle exec rake secret RAILS_ENV=production
• 复制输出然后 运行 sudo nano config/secrets.yml
• 在 production
下,将 secret_key_base
的值替换为最近复制的 rake secret。
• 按 CNTRL+X
,然后按 y
,然后按 enter
。
• 运行 passenger-config restart-app
和 select 您希望重新启动的应用程序。
https://www.phusionpassenger.com/library/admin/apache/restart_app.html
我周末遇到了这个问题(原来我的 passenger 版本和 ruby 不兼容)。
然而,似乎没有人提到:实际错误可能出现在 /var/log/apache2/errors.log 中,而不是在任何自定义日志中。
一旦你知道了,希望你的搜索会更容易!
更新,因为我需要再次参考这个 - 这对 nginx 也适用 - /var/log/nginx/error.log
在那种情况下是你的朋友!
就我而言,这是因为我的服务器 运行 内存间歇性不足(在 PDF 生成期间)。一旦生成 PDF,一些 RAM 就会恢复,错误就会消失。
我有一个 ubuntu 服务器,内存为 500M。
我 added some swap space 并且这个错误消失了。
这意味着您的 rails 应用程序在真正到达 rails 本身之前就已经崩溃了。这可能是中间件中的异常,缺少 ENV 键,OS 级别的东西。
首先尝试在本地启动应用程序,然后执行您为在生产环境中遇到错误所做的操作。如果一切正常,请检查所有日志。检查 nginx 日志、您的乘客日志,最后检查与启动和 运行 您的应用程序有关的任何其他 OS 特定日志。
有没有人跟我一样在上传文件后出现这个错误?
我的解决方案是检查文件名,其中可能包含一些特殊字符,例如 `[(~。
只需删除它,然后重新上传文件。
祝你好运~
我得到这个,只在我的测试服务器上而不是在生产中,因为我请求的 URL 不存在,我猜在测试环境中,Rails 抛出一个错误而不是返回 404 响应。