Compare commits
No commits in common. "e386a90f29d31143a30aef80a55dcf2abb105bf0" and "af0c398309d07008201271f100fbf3c8a57e4ef3" have entirely different histories.
e386a90f29
...
af0c398309
20
README.md
20
README.md
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue