我对我的Rails 4应用程序做了一些小改动,我在ApplicationController上的before_action中设置了response.headers:
class ApplicationController < ActionController::Base
before_action :set_response_headers
def set_response_headers
response.headers['FOO'] = some_object.id if some_object
response.headers['ABC'] = other_object.id if other_object
end
end
Nginx错误日志说:
2015/01/20 09:49:34 [error] 3401#0: *504273 upstream prematurely closed connection while reading response header from upstream, client: xx.xx.xx.xx, server: localhost, request: "GET /api/v1/foos HTTP/1.1", upstream: "passenger:/tmp/passenger.1.0.3380/generation-0/request:", host: "foo.com"
当我向/api/v1/foos
发出请求时,我看到请求命中Rails并且日志似乎正常进行,但响应开始了。
在这个特定问题上,我在这里或周围没有看到很多已解决的问题,而且我也不确定这不是PEBCAK问题。
答案 0 :(得分:1)
试试这个
response.headers['FOO'] = some_object.id.to_s if some_object
response.headers['ABC'] = other_object.id.to_s if other_object
Passenger需要标头值为字符串或数组