Skip to content
Search

Proxy server

lastmod 2026-09-16created 2018-08-0331 edits

A proxy server is a computer or application program that lets clients connect indirectly to other network services through it. The function of communicating on someone's behalf as a relay between server and client is called a 'proxy', and the thing that performs that relay function is called a proxy server.

A proxy server stores the content requested of it using a cache. Once cached, requests for information that is in the cache no longer require connecting to the remote server to fetch the data, which has the advantages of saving transfer time and avoiding unnecessary external connections. Reducing external traffic also helps prevent network bottlenecks.

Categories

  • Forward proxy
  • Reverse proxy
  • Tunneling protocol
  • Traefik
  • Nginx
  • HAProxy
  • Mitmproxy - open-source HTTPS Proxy for intercepting, modifying, and replaying web traffic such as HTTP 1/2, WebSocket, and SSL/TLS
  • Wiretap - a VPN-like proxy server that runs in user mode without root privileges
  • Tabserve - turns the browser into a reverse proxy to make localhost accessible from outside
  • Ngrok
  • Piko - open-source alternative to Ngrok
  • Portr - open-source ngrok alternative for small teams
  • pgrok - Poor man's ngrok
  • Caddy
  • Tunneling Softwares - solutions that make a local web server reachable via a public domain name even behind NAT
  • GoDoxy - an easy-to-use reverse proxy
  • Ophiuchi - a local HTTPS proxy server manager using Docker
  • localias - custom local domain aliases for local development servers
  • frp - A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
  • cloudflared
  • localhost.run - Simple hosted SSH option. Supports custom domains for a cost. - No separate installation needed; all you need is the ssh command.

Forward proxy

When a client tries to connect to example.com, the user's PC does not connect directly; instead, the forward proxy server receives the request, connects to example.com, and forwards the result to the client.

Forward proxies usually have caching, so they can greatly improve performance for frequently used content, and since they can restrict the web usage environment, for example by allowing connections only to designated sites, they are widely used in corporate environments.

Forward_Proxy.png

Reverse proxy

A reverse proxy is a type of proxy server in computer networks that retrieves resources from one or more servers on behalf of a client. These resources are then returned to the client as if they originated from the web server itself. In contrast to a forward proxy, which is an intermediary for its associated clients to connect to arbitrary servers, a reverse proxy is an intermediary for arbitrary clients to connect to its associated servers.

Widely deployed web servers often use reverse proxy functionality, protecting application frameworks with weak HTTP capabilities.

Reverse_Proxy.png

Corporate network environments usually have a zone called the DMZ located between the internal network and the external network, and servers that provide external services, such as mail servers, web servers, and FTP servers, are placed in this zone.

example.com could implement its service in Java and put the WAS in the DMZ to serve it, but since the WAS is usually connected to the DB server, having the WAS on the front line could lead to a serious problem where, if the WAS is compromised, the DB server is compromised along with it.

For this reason, the service is run by placing a reverse proxy server, locating the actual service servers on the internal network, and having only the proxy server communicate with the internal service servers and deliver the results to clients.

In particular, in a Linux environment, if you use the Apache web server as a reverse proxy and turn on SELinux, SELinux's default policy only lets the web server access Tomcat's ports 8080 and 8009, so even if the Apache web server is hacked, it cannot connect to the internal network with the web server's privileges.

Also, configuring the reverse proxy as a cluster increases availability and has the advantage of letting you flexibly add Web Servers or WAS instances as users increase.

NginX Cache

See Nginx#NginX Cache.

Environment Variables

On Linux, the following environment variables are used by many libraries:

INFORMATION

Note that git, curl, etc. use lowercase.

Connecting via reverse tunneling

See OpenSSH#Connecting via reverse tunneling.

See also

  • L4 Switch/L7 Switch
  • Proxy
  • BunkerWeb - open-source cloud-native web firewall
  • Warpgate - Fully transparent SSH, HTTPS, Kubernetes, MySQL and Postgres bastion/PAM that doesn't need additional client-side software

Favorite site

author Zer0 sitemap