Files
tp/main_dc/yalarba/api_es/internal/router/setMiddleware.go
T
valitovgaziz 5446bef3e9 modified: main_dc/nginx/nginx-ssl.conf
modified:   main_dc/yalarba/api_es/internal/router/setMiddleware.go
add headers nginx
2025-11-15 04:51:50 +05:00

42 lines
1.3 KiB
Go

package router
import (
"time"
"github.com/go-chi/chi/v5"
"github.com/go-chi/chi/v5/middleware"
"github.com/go-chi/cors"
)
// setupMiddlewares — устанавливает общие middleware для роутера.
func setupMiddlewares(r *chi.Mux) {
// Логирование всех запросов
r.Use(middleware.Logger)
// Восстановление после паник
r.Use(middleware.Recoverer)
// Удаление завершающих слешей
r.Use(middleware.StripSlashes)
// Установка реального IP из заголовков (X-Forwarded-For, X-Real-IP)
r.Use(middleware.RealIP)
// Таймаут обработки запроса
r.Use(middleware.Timeout(30 * time.Second))
// Поддержка CORS
r.Use(cors.Handler(cors.Options{
AllowedOrigins: []string{"https://easysite102.ru", "http://localhost:3000"},
AllowedMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS", "PATCH"},
AllowedHeaders: []string{"Accept", "Authorization", "Content-Type", "X-CSRF-Token", "X-Requested-With"},
ExposedHeaders: []string{"Link"},
AllowCredentials: true,
MaxAge: 300, // 5 минут
}))
// Можно добавить и другие кастомные middleware при необходимости
}