Sobes.tech
Middle+

O que é um reverse proxy e o que normalmente se usa para implementá-lo?

sobes.tech IA

Resposta da IA

O proxy reverso é um servidor que recebe pedidos dos clientes e os encaminha para um ou vários servidores internos. Ele oculta a estrutura interna da rede, equilibra a carga, armazena respostas em cache e garante a segurança.

Para implementar um proxy reverso, costuma-se usar:

  • Nginx: um servidor web popular com capacidades poderosas de proxy e balanceamento.
  • HAProxy: um balanceador de carga e proxy especializado.
  • Em Go, pode-se usar o pacote net/http para criar um proxy reverso próprio, por exemplo, através de httputil.ReverseProxy.

Exemplo de um proxy reverso simples em Go:

package main

import (
    "net/http"
    "net/http/httputil"
    "net/url"
)

func main() {
    target, _ := url.Parse("http://localhost:8080")
    proxy := httputil.NewSingleHostReverseProxy(target)

    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        proxy.ServeHTTP(w, r)
    })

    http.ListenAndServe(":9090", nil)
}