Faraday Proxy Configuration
Faraday is a popular Ruby HTTP client with middleware and adapters. Pass proxy: to Faraday.new for basic proxying. Use RubyProxyHeaders::FaradayIntegration so CONNECT response headers (such as X-ProxyMesh-IP) appear on Faraday responses.
Installation
gem install faraday faraday-net_http ruby-proxy-headers
Faraday 2.x uses the faraday-net_http adapter for the default stack.
Basic Proxy Configuration
Matches proxy-examples/ruby/faraday-proxy.rb:
require 'faraday'
conn = Faraday.new(proxy: 'http://username:password@proxyhost:31280') do |f|
f.adapter Faraday.default_adapter
end
response = conn.get('https://api.ipify.org?format=json')
puts response.body
puts response.status
IP authentication
conn = Faraday.new(proxy: 'http://proxyhost:port') do |f|
f.adapter Faraday.default_adapter
end
Custom Proxy Headers
require 'ruby_proxy_headers/faraday'
conn = RubyProxyHeaders::FaradayIntegration.connection(
proxy: 'http://username:password@proxyhost:31280',
proxy_connect_headers: { 'X-ProxyMesh-Country' => 'US' }
)
res = conn.get('https://api.ipify.org?format=json')
puts res.body
puts res.headers['X-ProxyMesh-IP']
ProxyMesh Headers Reference
Send these headers to control proxy behavior:
X-ProxyMesh-Country- Route through a specific country (e.g., "US"). Only works with world proxy or open proxyX-ProxyMesh-IP- Request a specific outgoing IP addressX-ProxyMesh-Not-IP- Exclude specific IPs from rotation
The proxy returns X-ProxyMesh-IP with the IP address used for the request (when your stack exposes CONNECT response headers).
Resources
- Faraday Documentation
- Faraday on RubyGems
- Faraday on RubyDoc
- ruby-proxy-headers (Faraday)
- ruby-proxy-headers on RubyGems
- ruby-proxy-headers on RubyDoc
- ProxyMesh Headers Reference
- Example Code on GitHub
Related Ruby Proxy Guides
Explore proxy configuration for other Ruby HTTP libraries: