From 46eaa864b3b6afc3e6d9244fa474c2204a054d81 Mon Sep 17 00:00:00 2001 From: Kyle Lacy Date: Wed, 18 Apr 2018 21:24:31 -0700 Subject: [PATCH] Replace `:compression` option with `:reset_accept_encoding` The default is to now to not clear the `Accept-Encoding` header (this can be changed back to the older behavior by passing `reset_accept_encoding: true`) --- README.md | 8 -------- lib/reverse_proxy/client.rb | 23 ++++++++++------------- 2 files changed, 10 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index f0d6aee..addeadd 100644 --- a/README.md +++ b/README.md @@ -65,14 +65,6 @@ If you'd like to bypass SSL verification reverse_proxy "http://localhost:8000", verify_ssl: false ``` -If you'd like to allow the proxy to request compressed resources by forwarding the `Accept-Encoding` header - -```ruby -reverse_proxy "http://localhost:8000", compression: :passthrough -# Note that your controller's response will only be compressed -# if the original response from localhost:8000 is compressed! -``` - If you'd like to customize the options passed into the [HTTP session](https://ruby-doc.org/stdlib-2.4.0/libdoc/net/http/rdoc/Net/HTTP.html#start-method) ```ruby diff --git a/lib/reverse_proxy/client.rb b/lib/reverse_proxy/client.rb index bcc02b2..84d3b4b 100644 --- a/lib/reverse_proxy/client.rb +++ b/lib/reverse_proxy/client.rb @@ -38,13 +38,13 @@ module ReverseProxy def request(env, options = {}, &block) options.reverse_merge!( - headers: {}, - http: {}, - path: nil, - username: nil, - password: nil, - verify_ssl: true, - compression: :disabled + headers: {}, + http: {}, + path: nil, + username: nil, + password: nil, + verify_ssl: true, + reset_accept_encoding: false ) source_request = Rack::Request.new(env) @@ -74,12 +74,9 @@ module ReverseProxy # Hold the response here target_response = nil - case options[:compression] - when :passthrough - # Pass along the "Accept-Encoding" header from the source request as-is, - # so we don't need to change anything - when :disabled, false, nil - # Remove the "Accept-Encoding" header if compression is disabled + if options[:reset_accept_encoding] + # Clear the "Accept-Encoding" header (which will + # disable compression or other server-side encodings) target_request['Accept-Encoding'] = nil end