Back to questions
Senior
4
Что такое reverse proxy и что обычно используют?
Companies where asked
purweb
Answer from AI
sobes.tech AI
Reverse proxy — это сервер, который принимает запросы от клиентов и перенаправляет их на один или несколько внутренних серверов. Он выступает как посредник между клиентом и сервером, скрывая внутреннюю структуру сети и обеспечивая дополнительные функции.
Основные задачи reverse proxy:
- Балансировка нагрузки между несколькими серверами.
- Кэширование ответов для ускорения обработки.
- SSL-терминация (обработка HTTPS).
- Защита внутренних серверов от прямого доступа.
- Сжатие и оптимизация трафика.
Часто используемые решения для reverse proxy:
- Nginx — популярный веб-сервер и reverse proxy с широкими возможностями.
- HAProxy — высокопроизводительный балансировщик нагрузки и reverse proxy.
- Traefik — современный динамический reverse proxy, часто используется в контейнерных средах.
В Go можно использовать пакет net/http/httputil для создания собственного reverse proxy. Пример простого 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.