Learn how to securely route Ruby HTTP traffic through a QuotaGuard Shield proxy using the Curb library.
Ruby installed.
QUOTAGUARDSHIELD_URL=... ruby net-http.rbBe sure to set QUOTAGUARDSHIELD_URL to your Connection URL from the QuotaGuard Dashboard.
docker build -t qg-shield-ruby-curb-example .
docker run -e QUOTAGUARDSHIELD_URL=... qg-shield-ruby-curb-example# app.rb
require 'curb'
proxy_url = ENV.fetch("QUOTAGUARDSHIELD_URL") do
abort "Please set QUOTAGUARDSHIELD_URL environment variable."
end
begin
curl = Curl::Easy.new("https://ip.quotaguard.com")
# Split out the URI parts if needed
require 'uri'
parsed = URI.parse(proxy_url)
# If it's an HTTP-based proxy:
curl.proxy_url = "#{parsed.scheme}://#{parsed.host}:#{parsed.port}"
curl.proxy_tunnel = true # Tells libcurl to use CONNECT for HTTPS
curl.proxypwd = "#{parsed.user}:#{parsed.password}" if parsed.user && parsed.password
curl.perform
puts "Status: #{curl.response_code}"
puts "Body:\n#{curl.body_str}"
rescue => e
warn "Request failed: #{e.message}"
raise
end# Dockerfile
FROM ruby:latest
WORKDIR /app
# Install curb gem (it has native extensions, so build-essential is needed)
RUN apt-get update && apt-get install -y build-essential libcurl4-openssl-dev \
&& gem install curb --no-document
COPY app.rb /app/app.rb
CMD ["ruby", "app.rb"]