Go to file
Marcos Beirigo c2f268026d Fixing Rails 5.1 warnings
Fixing the two warnings listed bellow:
 - DEPRECATION WARNING: env is deprecated and will be removed from Rails 5.1
 - DEPRECATION WARNING: `render :text` is deprecated because it does not
 actually render a `text/plain` response. Switch to `render plain: 'plain
 text'` to render as `text/plain`, `render html: '<strong>HTML</strong>'` to
 render as `text/html`, or `render body: 'raw'` to match the deprecated
 behavior and render with the default Content-Type, which is `text/plain`.
2016-10-27 09:36:51 +08:00
lib Fixing Rails 5.1 warnings 2016-10-27 09:36:51 +08:00
.document Initial commit to rails-reverse-proxy. 2015-06-04 19:22:09 -07:00
.gitignore Initial commit to rails-reverse-proxy. 2015-06-04 19:22:09 -07:00
Gemfile Replace the parsing cookie logic instead of cookiejar gem 2015-08-27 18:51:26 +09:00
Gemfile.lock Replace the parsing cookie logic instead of cookiejar gem 2015-08-27 18:51:26 +09:00
LICENSE Add MIT License 2016-10-05 00:10:31 -07:00
README.md Add option to verify SSL 2016-10-11 22:11:08 -07:00
Rakefile We don't use test and rdoc 2015-06-04 20:36:20 -07:00
VERSION Cut new release 2016-10-11 22:15:22 -07:00
rails-reverse-proxy.gemspec Regenerate gemspec for version 0.7.0 2016-10-11 22:15:31 -07:00

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" }

If you'd like to bypass SSL verification

reverse_proxy "http://localhost:8000", verify_ssl: false

Use this method to determine what version you're running

ReverseProxy.version

Feel free to open an issue!

Contributing

All pull requests will become first class citizens.

Thanks

Special thanks to our contributors!

Copyright (c) 2016 James Hu. See LICENSE for further details.