پیکربندی سرور
Gin گزینههای پیکربندی سرور انعطافپذیری ارائه میدهد. از آنجا که gin.Engine رابط http.Handler را پیادهسازی میکند، میتوانید از آن با net/http.Server استاندارد Go برای کنترل مستقیم timeoutها، TLS و سایر تنظیمات استفاده کنید.
استفاده از http.Server سفارشی
به طور پیشفرض، router.Run() یک سرور HTTP پایه راهاندازی میکند. برای استفاده در تولید، http.Server خود را برای تنظیم timeoutها و سایر گزینهها ایجاد کنید:
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 را میدهد در حالی که تمام قابلیتهای مسیریابی و میانافزار Gin حفظ میشود.
در این بخش
- پیکربندی HTTP سفارشی — تنظیم دقیق سرور HTTP زیربنایی
- کدک JSON سفارشی — استفاده از کتابخانههای سریالسازی JSON جایگزین
- Let’s Encrypt — گواهیهای TLS خودکار با Let’s Encrypt
- اجرای سرویسهای متعدد — ارائه چندین موتور Gin روی پورتهای مختلف
- راهاندازی مجدد یا توقف آرام — خاموشی بدون قطع اتصالات فعال
- HTTP/2 server push — ارسال پیشگیرانه منابع به کلاینت
- مدیریت کوکی — خواندن و نوشتن کوکیهای HTTP
- پروکسیهای مورد اعتماد — پیکربندی پروکسیهایی که Gin برای تعیین IP کلاینت به آنها اعتماد میکند