@kyanny's blog

My thoughts, my life. Views/opinions are my own.

Rack::Proxy で forward proxy

https://github.com/kyanny/playground/tree/gh-pages/rack-proxy

rack-proxy はサブクラスで rewrite_envrewrite_response をオーバーライドするのが作法(そこでなにかおもしろいことをする) rewrite_env は outgoing request を加工するフックで rewrite_response は incoming response を加工するフック。

require 'rack-proxy'
require 'pp'

class MyProxy < Rack::Proxy
  def rewrite_env env
    pp env
    env
  end

  def rewrite_response triplet
    pp triplet
    triplet
  end
end

run MyProxy.new
$ rackup
$ curl --proxy http://localhost:9292 http://example.com