rails-reverse-proxy/README.md

100 lines
2.2 KiB
Markdown
Raw Normal View History

2015-06-05 02:24:05 +00:00
# rails-reverse-proxy
2015-06-05 03:54:26 +00:00
Gives you the ability to reverse proxy within Rails.
2015-06-05 02:24:05 +00:00
## Installation
2015-06-05 03:54:26 +00:00
You know the drill. In your Gemfile, have the line
```ruby
gem 'rails-reverse-proxy'
```
Then (you guessed it!)
```
$ bundle
```
## Usage
An example usage of this gem is hosting a WordPress site on a path within your Rails application, such as `/blog`. To do this, you'll need something like
```ruby
class WordpressController < ApplicationController
include ReverseProxy::Controller
def index
# Assuming the WordPress server is being hosted on port 8080
reverse_proxy "http://localhost:8080" do |config|
# We got a 404!
config.on_missing do |code, response|
redirect_to root_url and return
end
# There's also other callbacks:
# - on_set_cookies
# - on_connect
2015-06-05 03:54:26 +00:00
# - on_response
# - on_set_cookies
# - on_success
# - on_redirect
# - on_missing
# - on_error
# - on_complete
end
end
end
```
Then in your `routes.rb` file, you should have something like
```ruby
match 'blog/*path' => 'wordpress#index', via: [:get, :post, :put, :patch, :delete]
2015-06-05 02:24:05 +00:00
```
2015-06-05 03:54:26 +00:00
You can also pass options into `reverse_proxy`
```ruby
reverse_proxy "http://localhost:8000", path: "custom-path", headers: { 'X-Foo' => "Bar" }
2015-06-05 02:24:05 +00:00
```
2016-10-12 05:11:08 +00:00
If you'd like to bypass SSL verification
```ruby
reverse_proxy "http://localhost:8000", verify_ssl: false
```
2017-03-12 06:50:36 +00:00
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
2017-03-12 06:50:36 +00:00
reverse_proxy "http://localhost:8000", http: { read_timeout: 20, open_timeout: 100 }
```
2016-10-05 20:14:21 +00:00
Use this method to determine what version you're running
```ruby
ReverseProxy.version
```
Feel free to open an issue!
2015-06-05 03:54:26 +00:00
## Contributing
All pull requests will become first class citizens.
2015-08-28 06:27:42 +00:00
## Thanks
Special thanks to our contributors!
- [miyukki](https://github.com/miyukki)
2016-09-30 15:58:28 +00:00
- [bapirex](https://github.com/bapirex)
2016-10-28 22:52:33 +00:00
- [marcosbeirigo](https://github.com/marcosbeirigo)
2017-03-12 06:52:06 +00:00
- [avinashkoulavkar](https://github.com/avinashkoulavkar)
- [jcs](https://github.com/jcs)
2015-08-28 06:27:42 +00:00
2015-06-05 02:24:05 +00:00
## Copyright
2017-03-12 07:03:11 +00:00
Copyright (c) 2016-2017 James Hu. See [LICENSE](LICENSE) for
2015-06-05 02:24:05 +00:00
further details.