Configuración del servidor
Gin ofrece opciones flexibles de configuración del servidor. Dado que gin.Engine implementa la interfaz http.Handler, puedes usarlo con el net/http.Server estándar de Go para controlar tiempos de espera, TLS y otras configuraciones directamente.
Usando un http.Server personalizado
Sección titulada «Usando un http.Server personalizado»Por defecto, router.Run() inicia un servidor HTTP básico. Para uso en producción, crea tu propio http.Server para configurar tiempos de espera y otras opciones:
func main() { router := gin.Default() router.GET("/", func(c *gin.Context) { c.String(200, "ok") })
s := &http.Server{ Addr: ":8080", Handler: router, ReadTimeout: 10 * time.Second, WriteTimeout: 10 * time.Second, MaxHeaderBytes: 1 << 20, } s.ListenAndServe()}Esto te da acceso completo a la configuración del servidor de Go mientras mantienes todas las capacidades de enrutamiento y middleware de Gin.
En esta sección
Sección titulada «En esta sección»- Configuración HTTP personalizada — Ajustar el servidor HTTP subyacente
- Códec JSON personalizado — Usar bibliotecas alternativas de serialización JSON
- Let’s Encrypt — Certificados TLS automáticos con Let’s Encrypt
- Ejecutar múltiples servicios — Servir múltiples motores Gin en diferentes puertos
- Reinicio o parada elegante — Apagar sin interrumpir conexiones activas
- HTTP/2 server push — Enviar recursos al cliente de forma proactiva
- Manejo de cookies — Leer y escribir cookies HTTP
- Proxies de confianza — Configurar qué proxies confía Gin para la resolución de IP del cliente