pille <[email protected]> wrote:
> hi,
> 
> is it possible to add static and dynamic HTTP response headers in
> unicorn.conf.rb?

No, but it is easily possible with a Rack config.ru

> i'd like to add the hostname of the worker for debugging and a
> timestamp, when the request was worked on.
> 
> currently this is done in nginx, which should be stripped from the stack.
> i'd like to keep it out of the webapp itself, because it's infrastructure.

Can you consider config.ru infrastructure?  unicorn tries to do as
much generically via Rack as possible.

The following (totally untested) middleware should work:
------------------------8<------------------------
require 'time'
require 'socket'
require 'rack/utils'

# Usage (in config.ru)
#   require 'name/of/this/file'
#   use ExtraHeaders
#   # other middlewares ...
#   run YourApp.new
class ExtraHeaders
  def initialize(app)
    @app = app
  end

  def call(env)
    start = Time.now.httpdate
    status, headers, body = @app.call(env)
    headers = Rack::Utils::HeaderHash.new(headers)
    headers["X-Hostname"] = Socket.gethostname
    headers["X-Start"] = start
    [ status, headers, body ]
  end
end
------------------------8<------------------------
_______________________________________________
Unicorn mailing list - [email protected]
http://rubyforge.org/mailman/listinfo/mongrel-unicorn
Do not quote signatures (like this one) or top post when replying

Reply via email to