我从我的FreeBSD盒子上的/var/log/messages
得到这个错误。我使用nginx
和spawn-fcgi
与memcache
和apc
模块启用。
upstream prematurely closed connection while reading response header from upstream,
client HTTP/1.1", upstream: "fastcgi://unix:/tmp/fcgi.sock:", host:
我在使用unicorn + nginx时有过类似的错误。
最终的结果是,由于防火墙配置错误,独角兽超时,死亡,让NGINX不知道该怎么做(NGINX会抛出503)。
一旦端口打开,我的问题就解决了。
我也看到过这种情况发生在API调用中,它需要很长时间(比我30岁的独角兽超时还要长)。我最后把它发送给后台工作,这样独角兽就不会超时。
在使用EC2 + Amazon RDS数据库实例时,我在使用RoR应用程序时遇到了类似的问题。
通过编辑RDS实例的安全组以允许EC2的IP通过端口5432解决了这个问题。只需编辑安全组的规则,为与RDS实例通信的端口添加自定义规则,并将EC2服务器的私有IP地址列入白名单。在那之后立刻起作用了!
这与PHP的版本有关。我使用了最新版本的nginx和稍旧版本的PHP。