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)
}