Configuração HTTP customizada
Por padrão, router.Run() inicia um servidor HTTP básico. Para uso em produção, você pode precisar customizar timeouts, limites de headers ou configurações TLS. Você pode fazer isso criando seu próprio http.Server e passando o router do Gin como o Handler.
Uso básico
Passe o router do Gin diretamente para http.ListenAndServe:
package main
import ( "net/http"
"github.com/gin-gonic/gin")
func main() { router := gin.Default()
router.GET("/ping", func(c *gin.Context) { c.String(http.StatusOK, "pong") })
http.ListenAndServe(":8080", router)}Com configurações de servidor customizadas
Crie uma struct http.Server para configurar timeouts de leitura/escrita e outras opções:
package main
import ( "net/http" "time"
"github.com/gin-gonic/gin")
func main() { router := gin.Default()
router.GET("/ping", func(c *gin.Context) { c.String(http.StatusOK, "pong") })
s := &http.Server{ Addr: ":8080", Handler: router, ReadTimeout: 10 * time.Second, WriteTimeout: 10 * time.Second, MaxHeaderBytes: 1 << 20, } s.ListenAndServe()}Teste
curl http://localhost:8080/ping# Output: pong