Configuração do Servidor
O Gin oferece opções flexíveis de configuração de servidor. Como gin.Engine implementa a interface http.Handler, você pode usá-lo com o net/http.Server padrão do Go para controlar timeouts, TLS e outras configurações diretamente.
Usando um http.Server customizado
Por padrão, router.Run() inicia um servidor HTTP básico. Para uso em produção, crie seu próprio http.Server para definir timeouts e outras opções:
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()}Isso dá acesso completo à configuração do servidor Go, mantendo todas as capacidades de roteamento e middleware do Gin.
Nesta seção
- Configuração HTTP customizada — Ajuste fino do servidor HTTP subjacente
- Codec JSON customizado — Use bibliotecas alternativas de serialização JSON
- Let’s Encrypt — Certificados TLS automáticos com Let’s Encrypt
- Executando múltiplos serviços — Sirva múltiplos engines Gin em portas diferentes
- Reinicialização ou parada graciosa — Desligue sem descartar conexões ativas
- HTTP/2 server push — Envie recursos ao cliente proativamente
- Manipulação de cookies — Leia e escreva cookies HTTP
- Proxies confiáveis — Configure quais proxies o Gin confia para resolução de IP do cliente