Sobes.tech
Middle+

Czym jest reverse proxy i co zwykle się do jego realizacji używa?

sobes.tech AI

Odpowiedź od AI

Rewersowy proxy to serwer, który przyjmuje żądania od klientów i przekierowuje je do jednego lub wielu wewnętrznych serwerów. Ukrywa wewnętrzną strukturę sieci, równoważy obciążenie, buforuje odpowiedzi i zapewnia bezpieczeństwo.

Do implementacji rewersowego proxy często używa się:

  • Nginx — popularny serwer WWW z potężnymi możliwościami proxy i równoważenia obciążenia.
  • HAProxy — specjalistyczny load balancer i proxy.
  • W Go można użyć pakietu net/http do stworzenia własnego rewersowego proxy, na przykład za pomocą httputil.ReverseProxy.

Przykład prostego rewersowego proxy w 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)
}