Compare commits

..

No commits in common. "e386a90f29d31143a30aef80a55dcf2abb105bf0" and "af0c398309d07008201271f100fbf3c8a57e4ef3" have entirely different histories.

4 changed files with 35 additions and 42 deletions

View File

@ -15,7 +15,7 @@ gem 'rails-reverse-proxy'
Then (you guessed it!) Then (you guessed it!)
``` ```
$ bundle install $ bundle
``` ```
## Usage ## Usage
@ -75,12 +75,6 @@ If you'd like to customize options passed into the underlying [`Net:HTTP`](https
reverse_proxy "http://localhost:8000", http: { read_timeout: 20, open_timeout: 100 } reverse_proxy "http://localhost:8000", http: { read_timeout: 20, open_timeout: 100 }
``` ```
If you'd like to reset the `Accept-Encoding` header in order to disable compression or other server-side encodings
```ruby
reverse_proxy "http://localhost:8000", reset_accept_encoding: true
```
Determine what version you're using Determine what version you're using
```ruby ```ruby
@ -97,12 +91,10 @@ All pull requests will become first class citizens.
Special thanks to our contributors! Special thanks to our contributors!
- [aardvarkk](https://github.com/aardvarkk)
- [Arjeno](https://github.com/Arjeno)
- [avinashkoulavkar](https://github.com/avinashkoulavkar)
- [bapirex](https://github.com/bapirex)
- [jcs](https://github.com/jcs)
- [kylewlacy](https://github.com/kylewlacy)
- [marcosbeirigo](https://github.com/marcosbeirigo)
- [mediafinger](https://github.com/mediafinger) - [mediafinger](https://github.com/mediafinger)
- [miyukki](https://github.com/miyukki) - [miyukki](https://github.com/miyukki)
- [bapirex](https://github.com/bapirex)
- [marcosbeirigo](https://github.com/marcosbeirigo)
- [avinashkoulavkar](https://github.com/avinashkoulavkar)
- [jcs](https://github.com/jcs)
- [aardvarkk](https://github.com/aardvarkk)

View File

@ -1 +1 @@
0.12.0 0.11.0

View File

@ -49,15 +49,13 @@ module ReverseProxy
source_request = Rack::Request.new(env) source_request = Rack::Request.new(env)
# We can pass in a custom path # We can pass in a custom path
uri = Addressable::URI.parse(self.url) uri = Addressable::URI.parse("#{url}#{options[:path] || env['ORIGINAL_FULLPATH']}")
prefix_path = uri.request_uri
path = "#{prefix_path}#{options[:path] || env['ORIGINAL_FULLPATH']}"
# Define headers # Define headers
target_request_headers = extract_http_request_headers(source_request.env).merge(options[:headers]) target_request_headers = extract_http_request_headers(source_request.env).merge(options[:headers])
# Initialize request # Initialize request
target_request = Net::HTTP.const_get(source_request.request_method.capitalize).new(path, target_request_headers) target_request = Net::HTTP.const_get(source_request.request_method.capitalize).new(uri.request_uri, target_request_headers)
# Basic auth # Basic auth
target_request.basic_auth(options[:username], options[:password]) if options[:username] and options[:password] target_request.basic_auth(options[:username], options[:password]) if options[:username] and options[:password]
@ -67,9 +65,9 @@ module ReverseProxy
&& source_request.body && source_request.body
source_request.body.rewind source_request.body.rewind
target_request.body_stream = source_request.body target_request.body_stream = source_request.body
target_request.content_length = source_request.content_length || 0
end end
target_request.content_length = source_request.content_length || 0
target_request.content_type = source_request.content_type if source_request.content_type target_request.content_type = source_request.content_type if source_request.content_type
# Hold the response here # Hold the response here
@ -87,8 +85,7 @@ module ReverseProxy
http_options.merge!(options[:http]) if options[:http] http_options.merge!(options[:http]) if options[:http]
# Make the request # Make the request
hostname = uri.starts_with?("unix://") ? uri.to_s : uri.hostname Net::HTTP.start(uri.hostname, uri.port, http_options) do |http|
Net::HTTP.start(hostname, uri.port, http_options) do |http|
callbacks[:on_connect].call(http) callbacks[:on_connect].call(http)
target_response = http.request(target_request) target_response = http.request(target_request)
end end

View File

@ -2,27 +2,25 @@
# DO NOT EDIT THIS FILE DIRECTLY # DO NOT EDIT THIS FILE DIRECTLY
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec' # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
# -*- encoding: utf-8 -*- # -*- encoding: utf-8 -*-
# stub: rails-reverse-proxy 0.12.0 ruby lib # stub: rails-reverse-proxy 0.10.1 ruby lib
Gem::Specification.new do |s| Gem::Specification.new do |s|
s.name = "rails-reverse-proxy".freeze s.name = "rails-reverse-proxy".freeze
s.version = "0.12.0" s.version = "0.10.1"
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version= s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
s.require_paths = ["lib".freeze] s.require_paths = ["lib".freeze]
s.authors = ["James Hu".freeze] s.authors = ["James Hu".freeze]
s.date = "2023-03-02" s.date = "2021-03-24"
s.description = "Reverse proxy for Ruby on Rails".freeze s.description = "Reverse proxy for Ruby on Rails".freeze
s.email = "hello@james.hu".freeze s.email = "hello@james.hu".freeze
s.extra_rdoc_files = [ s.extra_rdoc_files = [
"CHANGELOG.md",
"LICENSE", "LICENSE",
"README.md" "README.md"
] ]
s.files = [ s.files = [
".document", ".document",
".ruby-version", ".ruby-version",
"CHANGELOG.md",
"Gemfile", "Gemfile",
"Gemfile.lock", "Gemfile.lock",
"LICENSE", "LICENSE",
@ -38,30 +36,36 @@ Gem::Specification.new do |s|
] ]
s.homepage = "http://github.com/axsuul/rails-reverse-proxy".freeze s.homepage = "http://github.com/axsuul/rails-reverse-proxy".freeze
s.licenses = ["MIT".freeze] s.licenses = ["MIT".freeze]
s.rubygems_version = "3.1.6".freeze s.rubygems_version = "2.6.13".freeze
s.summary = "Reverse proxy for Ruby on Rails".freeze s.summary = "Reverse proxy for Ruby on Rails".freeze
if s.respond_to? :specification_version then if s.respond_to? :specification_version then
s.specification_version = 4 s.specification_version = 4
end
if s.respond_to? :add_runtime_dependency then if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
s.add_runtime_dependency(%q<actionpack>.freeze, [">= 0"]) s.add_runtime_dependency(%q<actionpack>.freeze, [">= 0"])
s.add_runtime_dependency(%q<addressable>.freeze, [">= 0"]) s.add_runtime_dependency(%q<addressable>.freeze, [">= 0"])
s.add_development_dependency(%q<bundler>.freeze, ["~> 1.0"]) s.add_development_dependency(%q<shoulda>.freeze, [">= 0"])
s.add_development_dependency(%q<jeweler>.freeze, ["~> 2.3.9"]) s.add_development_dependency(%q<rdoc>.freeze, ["~> 3.12"])
s.add_development_dependency(%q<nokogiri>.freeze, [">= 1.11.3"]) s.add_development_dependency(%q<bundler>.freeze, ["~> 1.0"])
s.add_development_dependency(%q<rdoc>.freeze, ["~> 3.12"]) s.add_development_dependency(%q<jeweler>.freeze, ["~> 2.1.2"])
s.add_development_dependency(%q<shoulda>.freeze, [">= 0"]) s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
s.add_development_dependency(%q<simplecov>.freeze, [">= 0"]) else
s.add_dependency(%q<actionpack>.freeze, [">= 0"])
s.add_dependency(%q<addressable>.freeze, [">= 0"])
s.add_dependency(%q<shoulda>.freeze, [">= 0"])
s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
s.add_dependency(%q<bundler>.freeze, ["~> 1.0"])
s.add_dependency(%q<jeweler>.freeze, ["~> 2.1.2"])
s.add_dependency(%q<simplecov>.freeze, [">= 0"])
end
else else
s.add_dependency(%q<actionpack>.freeze, [">= 0"]) s.add_dependency(%q<actionpack>.freeze, [">= 0"])
s.add_dependency(%q<addressable>.freeze, [">= 0"]) s.add_dependency(%q<addressable>.freeze, [">= 0"])
s.add_dependency(%q<bundler>.freeze, ["~> 1.0"])
s.add_dependency(%q<jeweler>.freeze, ["~> 2.3.9"])
s.add_dependency(%q<nokogiri>.freeze, [">= 1.11.3"])
s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
s.add_dependency(%q<shoulda>.freeze, [">= 0"]) s.add_dependency(%q<shoulda>.freeze, [">= 0"])
s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
s.add_dependency(%q<bundler>.freeze, ["~> 1.0"])
s.add_dependency(%q<jeweler>.freeze, ["~> 2.1.2"])
s.add_dependency(%q<simplecov>.freeze, [">= 0"]) s.add_dependency(%q<simplecov>.freeze, [">= 0"])
end end
end end