class Wovn::ReverseProxy::RackReverseProxy

Rack::ReverseProxy for wovn-reverse_proxy.

Public Instance Methods

call(env) click to toggle source
Calls superclass method
# File lib/wovn/reverse_proxy/rack_reverse_proxy.rb, line 7
def call(env)
  host = env['HTTP_X_WOVN_HOST'] || env['HTTP_HOST']
  host = host.to_s
  return invalid_host if host.empty?

  env['SERVER_NAME'] = env['HTTP_HOST'] = env['HTTP_X_FORWARDED_HOST']

  @rules = []
  reverse_proxy '/', host
  reverse_proxy_options preserve_host: false

  status, headers, body = super
  [status, headers, [body.to_s]]
end

Private Instance Methods

invalid_host() click to toggle source
# File lib/wovn/reverse_proxy/rack_reverse_proxy.rb, line 24
def invalid_host
  [400, { 'Content-Type' => 'text/plain' }, ['Invalid host parameter.']]
end