Reverse proxy
1605322
216589843
2008-06-02T09:37:28Z
88.224.183.52
/* See also */
A '''reverse proxy''' or '''surrogate''' is a [[proxy server]] that is installed within the neighborhood of one or more [[Server (computing)|server]]s. Typically, reverse proxies are used in front of [[Web server]]s. All connections coming from the Internet addressed to one of the Web servers are routed through the proxy server, which may either deal with the request itself or pass the request wholly or partially to the main web servers.
A reverse proxy dispatches in-bound network traffic to a set of servers, presenting a single interface to the caller. For example, a reverse proxy could be used for [[Load balancing (computing)|load balancing]] a cluster of web servers. In contrast, a ''forward proxy'' acts as a proxy for out-bound traffic. For example, an [[Internet service provider|ISP]] may use a proxy to forward [[HTTP]] traffic from its clients to external web servers on the internet; it may also [[cache]] the results to improve performance.
There are several reasons for installing reverse proxy servers:
* Security: the proxy server may provide an additional layer of defense by separating or masquerading the type of server that is behind the reverse proxy. This configuration may protect the servers further up the chain - mainly through obfuscation.
* Encryption / [[SSL acceleration]]: when [[secure website]]s are created, the [[Secure Sockets Layer|SSL]] encryption is sometimes not done by the Web server itself, but by a reverse proxy that is equipped with SSL acceleration hardware.
* [[Load balancer|Load distribution]]: the reverse proxy can distribute the load to several servers, each server serving its own application area. In the case of reverse proxying in the neighborhood of [[Web server]]s, the reverse proxy may have to rewrite the URLs in each webpage (translation from externally known URLs to the internal locations).
* [[Cache|Caching]] static content: A reverse proxy can offload the Web servers by caching static content, such as images. [[Proxy cache]]s of this sort can often satisfy a considerable amount of website requests, greatly reducing the load on the central web server. Sometimes referred to as a [[Web accelerator]].
* Compression: the proxy server can optimize and compress the content to speed up the load time.
* Spoon feeding: a dynamically generated page can be produced all at once and served to the reverse-proxy, which can then return it to the client a little bit at a time. The program that generates the page is not forced to remain open and tying up server resources during the possibly extended time the client requires to complete the transfer.
== See also ==
* [[Proxy server]]
* [[Varnish cache|Varnish]] is a modern open source reverse proxy.
* [[Squid cache]] is a proxy server software that may be installed in a reverse proxy configuration.
* The [[Apache HTTP Server]] may be extended with mod_proxy to be used as a reverse proxy; a caching proxy server may be configured using the mod_cache module in conjunction with mod_proxy
* [[Perlbal]] is a Perl-based reverse proxy load balancer and web server.
* [[Lighttpd]] can be used as a reverse proxy with load balancing capabilities.
* [[Nginx]] - Web and Reverse proxy server.
* [[Pound (networking)|Pound]], a lightweight open source reverse proxy.
* [[WinGate (computing)|WinGate]] supports reverse-proxying with SSL, authentication, and multiple virtual hosts.
* [[Pen (software)|Pen]] is a load balancer for simple TCP-based protocols, such as HTTP or SMTP.
* [http://www.protonet.co.za/ Proto Balance] is a load balancer and traffic management tool.
* [http://www.iqreverseproxy.com/ Fastream IQ Reverse Proxy] is a load balancer and accelerator for Windows.
[[Category:Computer networking]]
[[Category:Network performance]]
[[Category:Internet architecture]]
[[cs:Reverzní proxy server]]
[[fr:Reverse proxy]]
[[ja:リバースプロキシ]]