# rails-reverse-proxy Gives you the ability to reverse proxy within Rails. ## Installation 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_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] ``` You can also pass options into `reverse_proxy` ```ruby reverse_proxy "http://localhost:8000", path: "custom-path", headers: { 'X-Foo' => "Bar" } ``` If you'd like to bypass SSL verification ```ruby reverse_proxy "http://localhost:8000", verify_ssl: false ``` If you'd like to more customize your [HTTP optional hash](https://ruby-doc.org/stdlib-2.4.0/libdoc/net/http/rdoc/Net/HTTP.html#start-method), ```ruby reverse_proxy "http://localhost:8000", http_options: {read_timeout: 20, open_timeout: 100} ``` Use this method to determine what version you're running ```ruby ReverseProxy.version ``` Feel free to open an issue! ## Contributing All pull requests will become first class citizens. ## Thanks Special thanks to our contributors! - [miyukki](https://github.com/miyukki) - [bapirex](https://github.com/bapirex) - [marcosbeirigo](https://github.com/marcosbeirigo) ## Copyright Copyright (c) 2016 James Hu. See [LICENSE](LICENSE) for further details.