Назад к вопросам
Senior
3
Что такое reverse proxy и с помощью чего его можно реализовать?
Компании, где спрашивали
purrweb
Ответ от нейросети
sobes.tech AI
Reverse proxy — это сервер, который принимает запросы от клиентов и перенаправляет их на один или несколько внутренних серверов. Он скрывает внутреннюю структуру сети, обеспечивает балансировку нагрузки, кэширование, SSL-терминацию и повышает безопасность.
Реализовать reverse proxy можно с помощью различных инструментов и библиотек. В контексте Golang часто используют:
- Встроенный пакет
net/httpс кастомным обработчиком, который перенаправляет запросы. - Фреймворки и библиотеки, например,
httputil.ReverseProxyиз стандартной библиотеки.
Пример простого reverse proxy на 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.