サーバー設定
Ginは柔軟なサーバー設定オプションを提供しています。gin.Engineはhttp.Handlerインターフェースを実装しているため、Goの標準net/http.Serverと組み合わせてタイムアウト、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()}これにより、Ginのルーティングとミドルウェア機能をすべて維持しながら、Goのサーバー設定に完全にアクセスできます。
このセクションの内容
- カスタムHTTP設定 — 基盤となるHTTPサーバーの微調整
- カスタムJSONコーデック — 代替JSONシリアライゼーションライブラリの使用
- Let’s Encrypt — Let’s Encryptによる自動TLS証明書
- 複数サービスの実行 — 異なるポートで複数のGinエンジンを起動
- グレースフルリスタートまたは停止 — アクティブな接続を切断せずにシャットダウン
- HTTP/2サーバープッシュ — リソースをクライアントに先行してプッシュ
- Cookieの処理 — HTTP Cookieの読み書き
- 信頼済みプロキシ — クライアントIP解決のためにGinが信頼するプロキシの設定