Example:
Gemfile
1 |
gem 'rack-proxy' |
view
1 2 3 4 5 6 7 |
<iframe {...this.props} frameBorder="0" width="1000" height="500" src="/some-url" /> |
config/application.rb
1 2 3 4 5 |
require_relative '../lib/proxy/service_proxy' ... class Application < Rails::Application ... config.middleware.use ServiceProxy |
lib/proxy/service_proxy.rb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
require 'rack/proxy' class ServiceProxy < Rack::Proxy def initialize(app) @app = app @allow_urls = %w[/some-url /some-url2] end def rewrite_env(env) if @allow_urls.include?(env['PATH_INFO']) env["HTTP_HOST"] = "any_domain.com" env["SERVER_PORT"] = 443 env['HTTPS'] = 'on' end env end def call(env) if @allow_urls.include?(env['PATH_INFO']) rewrite_env(env) rewrite_response(perform_request(rewrite_env(env))) else @app.call(env) end end end |