add support for unix socket
This commit is contained in:
parent
b5156fa170
commit
c201300f6b
|
@ -49,13 +49,18 @@ module ReverseProxy
|
|||
source_request = Rack::Request.new(env)
|
||||
|
||||
# We can pass in a custom path
|
||||
uri = Addressable::URI.parse("#{url}#{options[:path] || env['ORIGINAL_FULLPATH']}")
|
||||
uri = Addressable::URI.parse(self.url)
|
||||
prefix_path = uri.request_uri
|
||||
path = "#{prefix_path}#{options[:path] || env['ORIGINAL_FULLPATH']}"
|
||||
if path.blank?
|
||||
path = "/"
|
||||
end
|
||||
|
||||
# Define headers
|
||||
target_request_headers = extract_http_request_headers(source_request.env).merge(options[:headers])
|
||||
|
||||
# Initialize request
|
||||
target_request = Net::HTTP.const_get(source_request.request_method.capitalize).new(uri.request_uri, target_request_headers)
|
||||
target_request = Net::HTTP.const_get(source_request.request_method.capitalize).new(path, target_request_headers)
|
||||
|
||||
# Basic auth
|
||||
target_request.basic_auth(options[:username], options[:password]) if options[:username] and options[:password]
|
||||
|
@ -85,7 +90,8 @@ module ReverseProxy
|
|||
http_options.merge!(options[:http]) if options[:http]
|
||||
|
||||
# Make the request
|
||||
Net::HTTP.start(uri.hostname, uri.port, http_options) do |http|
|
||||
hostname = self.url.starts_with?("unix://") ? uri.to_s : uri.hostname
|
||||
NetX::HTTPUnix.start(hostname, uri.port, http_options) do |http|
|
||||
callbacks[:on_connect].call(http)
|
||||
target_response = http.request(target_request)
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue