• Rajesh Mahindra's avatar
    Enabling quic_server to act as a HTTP proxy serving QUIC clients. · 4380217c
    Rajesh Mahindra authored
    To add the functionality of a reverse proxy to the QUIC server, 2 classes
    were added:
    1. QuicHttpProxyBackend: Implements the interface: QuicSimpleServerBackend
    to fetch the response from a backend server. Creates a proxy thread and manages an instance of
       net::URLRequestContext within that thread to make HTTP calls to a backend
       server.
    2. QuicHttpProxyBackendStream: Created on a per-stream basis, manages an
       instance of the class net::URLRequest to make a single HTTP call to the
       backend server using the context created by QuicHttpProxyBackend.
    
    Run As a Proxy
    To run the quic_server as a reverse proxy, run
    with --mode=proxy. The param --quic_proxy_backend_url specifies the
    backend server from which the response is fetched. For instance,
    
    ./out/Default/quic_server \
      --certificate_file=net/tools/quic/certs/out/leaf_cert.pem \
      --key_file=net/tools/quic/certs/out/leaf_cert.pkcs8 \
      --mode=proxy \
      --quic_proxy_backend_url=http://localhost
    
    R=rch@chromium.org, zhongyi@chromium.org
    
    Change-Id: I79b7d66eb6bba9628d99181def004c0a5ea2e214
    Reviewed-on: https://chromium-review.googlesource.com/1128323
    Commit-Queue: Ryan Hamilton <rch@chromium.org>
    Reviewed-by: default avatarRyan Hamilton <rch@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#577650}
    4380217c
quic_http_proxy_backend.cc 6.67 KB