Конфигурация сервера
Gin предлагает гибкие возможности конфигурации сервера. Поскольку gin.Engine реализует интерфейс http.Handler, вы можете использовать его со стандартным net/http.Server Go для управления таймаутами, TLS и другими настройками напрямую.
Использование пользовательского http.Server
По умолчанию router.Run() запускает базовый HTTP-сервер. Для продакшна создайте свой собственный http.Server для установки таймаутов и других параметров:
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()}Это даёт вам полный доступ к конфигурации сервера Go, сохраняя при этом все возможности маршрутизации и middleware Gin.
В этом разделе
- Пользовательская конфигурация HTTP — Тонкая настройка базового HTTP-сервера
- Пользовательский JSON-кодек — Использование альтернативных библиотек сериализации JSON
- Let’s Encrypt — Автоматические TLS-сертификаты с Let’s Encrypt
- Запуск нескольких сервисов — Обслуживание нескольких движков Gin на разных портах
- Плавная перезагрузка или остановка — Завершение работы без разрыва активных соединений
- HTTP/2 server push — Проактивная отправка ресурсов клиенту
- Работа с cookies — Чтение и запись HTTP-cookies
- Доверенные прокси — Настройка прокси, которым Gin доверяет для определения IP клиента