Mod proxy

Last updated

mod_proxy is an optional module for the Apache HTTP Server. [1]

Contents

This module implements a proxy, gateway or cache for Apache. It implements proxying capability for AJP13 (Apache JServ Protocol version 1.3), FTP, CONNECT (for SSL), HTTP/0.9, HTTP/1.0, and (since Apache 1.3.23) HTTP/1.1. The module can be configured to connect to other proxy modules for these and other protocols.

One powerful feature of Apache is flexible virtual hosting—multiple virtual hosts on a single server. This is a convenient way to partition separate websites and applications. With mod_proxy it is possible to set various web framework-based applications up as virtual hosts as well. [2] [3] [4]

mod_proxy can help to improve LAMP security [5] or to strip SSL from HTTP requests. [6]

History

This module was experimental in Apache 1.1.x. [7]

As of Apache 1.2, mod_proxy stability was greatly improved. [8]

Since Apache 2.0, proxy features are divided into several modules in addition to mod_proxy: mod_proxy_http, mod_proxy_ftp, and mod_proxy_connect — moreover, caching is provided by mod_cache and related modules. [9]

Since Apache 2.2, mod_proxy_ajp and mod_proxy_balancer have been added as well. [10]

As of Apache 2.4, mod_proxy_fcgi was also added, to proxy FastCGI requests to another server, superseding mod_fcgid and mod_fastcgi. [11]

See also

Notes

  1. Homepage of mod_proxy for Apache 2.2
  2. "Running CherryPy behind Apache using mod_proxy". Archived from the original on 2010-02-21. Retrieved 2009-11-09.
  3. Single Django App behind multiple Apache Proxies
  4. "Using web2py with Apache, mod_proxy, and mod_proxy_html". Archived from the original on 2009-11-11. Retrieved 2009-11-09.
  5. Improve LAMP security with Apache Proxy's directive (mod_proxy)
  6. "Strip SSL with Apache mod_proxy". Archived from the original on 2009-09-29. Retrieved 2009-11-09.
  7. "The mod_proxy module was experimental in Apache 1.1.x". Archived from the original on 2009-10-10. Retrieved 2009-10-10.
  8. "In Apache 1.2, mod_proxy stability was greatly improved". Archived from the original on 2009-10-10. Retrieved 2009-10-10.
  9. In Apache 2.0 proxy features are divided into several modules
  10. In Apache 2.2 mod_proxy_ajp and mod_proxy_balancer added
  11. mod_proxy_fcgi documentation

Related Research Articles

<span class="mw-page-title-main">Apache HTTP Server</span> Open-source web server software

The Apache HTTP Server is a free and open-source cross-platform web server software, released under the terms of Apache License 2.0. It is developed and maintained by a community of developers under the auspices of the Apache Software Foundation.

<span class="mw-page-title-main">Web server</span> Computer software that distributes web pages

A web server is computer software and underlying hardware that accepts requests via HTTP or its secure variant HTTPS. A user agent, commonly a web browser or web crawler, initiates communication by making a request for a web page or other resource using HTTP, and the server responds with the content of that resource or an error message. A web server can also accept and store resources sent from the user agent if configured to do so.

<span class="mw-page-title-main">Proxy server</span> Computer server that makes and receives requests on behalf of a user

In computer networking, a proxy server is a server application that acts as an intermediary between a client requesting a resource and the server providing that resource. It improves privacy, security, and performance in the process.

<span class="mw-page-title-main">Internet Information Services</span> Extensible web server software by Microsoft

Internet Information Services (IIS) is an extensible web server created by Microsoft for use with the Windows NT family. IIS supports HTTP, HTTP/2, HTTPS, FTP, FTPS, SMTP and NNTP. It has been an integral part of the Windows NT family since Windows NT 4.0, though it may be absent from some editions, and is not active by default.

lighttpd

lighttpd is an open-source web server optimized for speed-critical environments while remaining standards-compliant, secure and flexible. It was originally written by Jan Kneschke as a proof-of-concept of the c10k problem – how to handle 10,000 connections in parallel on one server, but has gained worldwide popularity. Its name is a portmanteau of "light" and "httpd".

CherryPy is an object-oriented web application framework using the Python programming language. It is designed for rapid development of web applications by wrapping the HTTP protocol but stays at a low level and does not offer much more than what is defined in RFC 7231.

mod_jk is an Apache module used to connect the Tomcat servlet container with web servers such as Apache, iPlanet, Sun ONE and even IIS using the Apache JServ Protocol. The mod_proxy_ajp module performs a similar function to this module, while being integrated into the mod_proxy framework.

Web server software allows computers to act as web servers. The first web servers supported only static files, such as HTML, but now they commonly allow embedding of server side applications.

<span class="mw-page-title-main">HTTP compression</span> Capability that can be built into web servers and web clients

HTTP compression is a capability that can be built into web servers and web clients to improve transfer speed and bandwidth utilization.

The Apache JServ Protocol (AJP) is a binary protocol that can proxy inbound requests from a web server through to an application server that sits behind the web server. AJP is a highly trusted protocol and should never be exposed to untrusted clients, which could use it to gain access to sensitive information or execute code on the application server.

<span class="mw-page-title-main">X-Forwarded-For</span> HTTP header field

The X-Forwarded-For (XFF) HTTP header field is a common method for identifying the originating IP address of a client connecting to a web server through an HTTP proxy or load balancer.

Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache. The software was created by Igor Sysoev and publicly released in 2004. Nginx is free and open-source software, released under the terms of the 2-clause BSD license. A large fraction of web servers use Nginx, often as a load balancer.

ModSecurity, sometimes called Modsec, is an open-source web application firewall (WAF). Originally designed as a module for the Apache HTTP Server, it has evolved to provide an array of Hypertext Transfer Protocol request and response filtering capabilities along with other security features across a number of different platforms including Apache HTTP Server, Microsoft IIS and Nginx. It is free software released under the Apache license 2.0.

Web2py is an open-source web application framework written in the Python programming language. Web2py allows web developers to program dynamic web content using Python. Web2py is designed to help reduce tedious web development tasks, such as developing web forms from scratch, although a web developer may build a form from scratch if required.

Resin is a web server and Java application server from Caucho Technology. In addition to Resin (GPL), Resin Pro is available for enterprise and production environments with a license. Resin supports the Java EE standard as well as a mod_php/PHP like engine called Quercus.

<span class="mw-page-title-main">Slowloris (computer security)</span> Software for executing a denial-of-service attack

Slowloris is a type of denial of service attack tool which allows a single machine to take down another machine's web server with minimal bandwidth and side effects on unrelated services and ports.

mod_ssl is an optional module for the Apache HTTP Server. It provides strong cryptography for the Apache v1.3 and v2 webserver via the Secure Sockets Layer and Transport Layer Security cryptographic protocols by the help of the Open Source SSL/TLS toolkit OpenSSL.

mod_gzip is an external extension module for the Apache HTTP Server v1 and v2.

SPDY is an obsolete open-specification communication protocol developed for transporting web content. SPDY became the basis for HTTP/2 specification. However, HTTP/2 diverged from SPDY and eventually HTTP/2 subsumed all usecases of SPDY. After HTTP/2 was ratified as a standard, major implementers, including Google, Mozilla, and Apple, deprecated SPDY in favor of HTTP/2. Since 2021, no modern browser supports SPDY.

FastCGI is a binary protocol for interfacing interactive programs with a web server. It is a variation on the earlier Common Gateway Interface (CGI). FastCGI's main aim is to reduce the overhead related to interfacing between web server and CGI programs, allowing a server to handle more web page requests per unit of time.