Sobes.tech
Назад к вопросам
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.