Sobes.tech
Middle+

Какво е реверс-прокси и какво обикновено се използва за неговата реализация?

sobes.tech AI

Отговор от AI

Reverse proxy е сървър, който получава заявки от клиенти и ги пренасочва към един или повече вътрешни сървъри. Той скрива вътрешната структура на мрежата, балансира натоварването, кешира отговорите и осигурява сигурност.

За реализиране на reverse proxy често се използват:

  • Nginx — популярен уеб сървър с мощни възможности за проксиране и баланс на натоварването.
  • HAProxy — специализиран балансировач и прокси.
  • В Go може да се използва пакета net/http за създаване на собствен reverse proxy, например чрез httputil.ReverseProxy.

Пример за прост reverse proxy на 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)
}