Конфигурация сервера
Gin предлагает гибкие возможности конфигурации сервера. Поскольку gin.Engine реализует интерфейс http.Handler, вы можете использовать его со стандартным net/http.Server Go для управления таймаутами, TLS и другими настройками напрямую.
Использование пользовательского http.Server
Заголовок раздела «Использование пользовательского 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 клиента
