El proxy inverso es un servidor intermediario que recibe las solicitudes de los clientes, las reenvía a uno o más servidores situados detrás y devuelve las respuestas. Los clientes solo se comunican con el proxy inverso y no son conscientes de la existencia de los servidores que hay detrás. Entre las implementaciones representativas están Nginx, HAProxy y Envoy. El RFC 9110 define la pasarela (también llamada proxy inverso) como un intermediario que actúa como servidor de origen para la conexión saliente y que transforma las solicitudes recibidas y las reenvía hacia dentro, a uno o más servidores.
Las principales funciones del proxy inverso son las siguientes. La primera es la terminación SSL/TLS, que concentra el cifrado / descifrado en el proxy y reduce la carga del backend. La segunda es el balanceo de carga, que distribuye las solicitudes entre varios servidores backend y aumenta la disponibilidad. La tercera es la caché, que conserva el contenido estático y las respuestas a las que se accede con frecuencia y reduce las solicitudes al backend. La cuarta es la seguridad, que oculta las direcciones IP de los servidores backend e implementa funciones de WAF y medidas contra DDoS.
También se usan proxies inversos en la arquitectura de un acortador de URL. Un ejemplo es una configuración que recibe las solicitudes con Nginx para procesar un gran volumen de solicitudes de redirección. En ella, una capa de caché conserva los destinos de redirección de las URLs cortas que se repiten con frecuencia, y solo se consulta la base de datos del backend cuando falla la caché.
Un punto que hay que vigilar en la configuración de un proxy inverso es el manejo adecuado de la cabecera X-Forwarded-For. Como los acortadores de URL registran la dirección IP desde la que se hace clic, se necesita una configuración para que el proxy transmita al backend la IP real del cliente. MDN advierte que las direcciones IP de X-Forwarded-For distintas de las añadidas por proxies de confianza pueden estar falsificadas (a julio de 2025). Además, el ajuste para entornos de mucho tráfico, como el soporte de HTTP/2 y HTTP/3, la configuración de keep-alive de las conexiones y el ajuste de los valores de tiempo de espera, también influye en el rendimiento.