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/httpdo 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)
}