| 
				
					
						
							 | 
			||
|---|---|---|
| lib | ||
| .document | ||
| .gitignore | ||
| Gemfile | ||
| Gemfile.lock | ||
| LICENSE.txt | ||
| README.md | ||
| Rakefile | ||
| VERSION | ||
| rails-reverse-proxy.gemspec | ||
		
			
				
				README.md
			
		
		
			
			
		
	
	rails-reverse-proxy
Gives you the ability to reverse proxy within Rails.
Installation
You know the drill. In your Gemfile, have the line
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
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_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
match 'blog/*path' => 'wordpress#index', via: [:get, :post, :put, :patch, :delete]
You can also pass options into reverse_proxy
reverse_proxy "http://localhost:8000", path: "custom-path", headers: { 'X-Foo' => "Bar" }
Sorry if these instructions are sparse. Feel free to reach out or read the source!
Contributing
All pull requests will become first class citizens.
Copyright
Copyright (c) 2015 James Hu. See LICENSE.txt for further details.