Назад к вопросам
Middle
4
Что такое реверс-прокси и с помощью чего его можно реализовать?
Компании, где спрашивали
purweb
Ответ от нейросети
sobes.tech AI
Реверс-прокси — это сервер, который принимает запросы от клиентов и перенаправляет их на один или несколько внутренних серверов, скрывая их от клиента. Он может выполнять балансировку нагрузки, кэширование, SSL-терминацию и обеспечивать дополнительный уровень безопасности.
В Go реверс-прокси можно реализовать с помощью пакета net/http/httputil, который содержит тип ReverseProxy.
Пример простого реверс-прокси на Go:
package main
import (
"log"
"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)
})
log.Println("Starting reverse proxy on :9090")
log.Fatal(http.ListenAndServe(":9090", nil))
}
В этом примере все запросы на порт 9090 будут перенаправлены на локальный сервер на порт 8080.