HTTP Reverse Proxy - Hypertext Transfer Protocol Reverse Proxy =============================================================== .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **What is HTTP Reverse Proxy?** An **HTTP Reverse Proxy** is a server that sits between clients and backend servers. It receives HTTP requests from clients and forwards them to one or more backend servers. The response from the backend server is then sent back to the client through the proxy. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Why is HTTP Reverse Proxy useful?** HTTP Reverse Proxies are useful for: - **Load balancing** traffic across multiple servers - **SSL termination** (handling HTTPS on behalf of backend services) - **Caching** static content to improve performance - **Security**, by hiding internal server structure - **Centralized logging and monitoring** - **Request filtering and routing** .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **How it works?** The client sends an HTTP/HTTPS request to the reverse proxy. The proxy: - **Examines** the request - **Selects** an appropriate backend server (based on rules/load) - **Forwards** the request to that server - **Receives** the response - **Sends** it back to the client as if it originated from the proxy Tools like **NGINX**, **Apache**, and **HAProxy** commonly implement this. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Where is HTTP Reverse Proxy used?** Used in: - **Web server environments** (e.g., to serve dynamic and static content) - **Microservices architectures** - **API gateways** - **Cloud platforms** - **Content delivery and caching systems** .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Which OSI layer does this protocol belong to?** HTTP Reverse Proxy operates at the **Application Layer (Layer 7)** of the OSI model. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Is HTTP Reverse Proxy Windows specific?** No, it is **not Windows specific**. It can run on Windows, Linux, or any OS that supports HTTP server software. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Is HTTP Reverse Proxy Linux specific?** No, it is **not Linux specific**, although many reverse proxy tools (like NGINX or HAProxy) are commonly deployed on Linux servers. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Which Transport Protocol is used by HTTP Reverse Proxy?** HTTP Reverse Proxies typically use: - **TCP** for HTTP and HTTPS connections - **TLS over TCP** for secure communication (HTTPS) .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Which Port is used by HTTP Reverse Proxy?** Common ports include: - **Port 80** for HTTP - **Port 443** for HTTPS - Custom ports may also be configured based on deployment .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Is HTTP Reverse Proxy using Client server model?** Yes, it uses the **client-server model**: - **Clients** send requests to the proxy - The proxy acts as the **server** to the client and as a **client** to the backend servers .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow Topics in this section, * :ref:`Learnings in this section ` * :ref:`Terminology ` * :ref:`Version Info ` * :ref:`HTTP_Reverse_Proxy Version&IEEE Details ` * :ref:`HTTP_Reverse_Proxy Basic Setup on Ubuntu using IPv4 ` * :ref:`HTTP_Reverse_Proxy Basic Setup on Ubuntu using IPv6 ` * :ref:`HTTP_Reverse_Proxy Protocol Packet Details ` * :ref:`HTTP_Reverse_Proxy Usecases ` * :ref:`HTTP_Reverse_Proxy Basic Features ` * :ref:`Reference links ` .. _HTTP_Reverse_Proxy_step1: .. tab-set:: .. tab-item:: Learnings in this section * In this section, you are going to learn .. _HTTP_Reverse_Proxy_step2: .. tab-set:: .. tab-item:: Terminology * Terminology .. _HTTP_Reverse_Proxy_step3: .. tab-set:: .. tab-item:: Version Info * Version Info .. _HTTP_Reverse_Proxy_step5: .. tab-set:: .. tab-item:: HTTP_Reverse_Proxy Version&RFC Details * rfc details .. _HTTP_Reverse_Proxy_step18: .. tab-set:: .. tab-item:: HTTP_Reverse_Proxy Basic Setup on Ubuntu using IPv4 * setup .. _HTTP_Reverse_Proxy_step19: .. tab-set:: .. tab-item:: HTTP_Reverse_Proxy Basic Setup on Ubuntu using IPv6 * setup .. _HTTP_Reverse_Proxy_step6: .. tab-set:: .. tab-item:: HTTP_Reverse_Proxy Protocol Packet Details * packet details .. _HTTP_Reverse_Proxy_step7: .. tab-set:: .. tab-item:: HTTP_Reverse_Proxy Usecases * usecases .. _HTTP_Reverse_Proxy_step8: .. tab-set:: .. tab-item:: HTTP_Reverse_Proxy Basic Features * features .. _HTTP_Reverse_Proxy_step17: .. tab-set:: .. tab-item:: Reference links * Reference links