Sobes.tech
Back to questions
Middle
5

Что такое реверс-прокси и с помощью чего его можно реализовать?

Companies where asked
purweb

Answer from AI

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.