diff --git a/modules/base/middleware/middleware.go b/modules/base/middleware/middleware.go index af8317c0a..a516ef3f5 100644 --- a/modules/base/middleware/middleware.go +++ b/modules/base/middleware/middleware.go @@ -7,6 +7,8 @@ import ( "blazing/modules/config/service" "fmt" "net/http" + "net/http/httputil" + "net/url" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/net/ghttp" @@ -15,6 +17,8 @@ import ( "github.com/lxzan/gws" ) +const UpStream = "http://43.248.3.21:45632/" + func MiddlewareCORS(r *ghttp.Request) { r.Response.CORSDefault() corsOptions := r.Response.DefaultCORSOptions() @@ -34,6 +38,34 @@ func MiddlewareCORS(r *ghttp.Request) { // r.Response.Header().Set("Server", "blazing") r.Middleware.Next() } +func StartServerProxy() { + s := g.Server() + // Parse the upstream URL + u, _ := url.Parse(UpStream) + // Create a new reverse proxy instance + proxy := httputil.NewSingleHostReverseProxy(u) + // Configure error handling for proxy failures + proxy.ErrorHandler = func(writer http.ResponseWriter, request *http.Request, e error) { + writer.WriteHeader(http.StatusBadGateway) + } + // Handle all requests with path prefix "/proxy/*" + s.BindHandler("/bbs/*url", func(r *ghttp.Request) { + var ( + originalPath = r.Request.URL.Path + proxyToPath = "/" + r.Get("url").String() + ) + // Rewrite the request path + r.Request.URL.Path = proxyToPath + // Log the proxy operation + g.Log().Infof(r.Context(), `proxy:"%s" -> backend:"%s"`, originalPath, proxyToPath) + // Ensure request body can be read multiple times if needed + r.MakeBodyRepeatableRead(false) + // Forward the request to the backend server + proxy.ServeHTTP(r.Response.Writer, r.Request) + }) + +} + func init() { if config.Config.Middleware.Authority.Enable { g.Server().BindMiddleware("/admin/*/open/*", BaseAuthorityMiddlewareOpen) @@ -47,6 +79,7 @@ func init() { if config.Config.Middleware.Log.Enable { g.Server().BindMiddleware("/admin/*", BaseLog) } + StartServerProxy() tt := rpc.CServer() g.Server().BindHandler("/rpc/*", func(r *ghttp.Request) { diff --git a/modules/player/model/done.go b/modules/player/model/done.go index 11ff87dd2..4ef66043b 100644 --- a/modules/player/model/done.go +++ b/modules/player/model/done.go @@ -30,7 +30,7 @@ var MilestoneMode = enum.New[struct { Fight EnumMilestone //挑战类 对战模式->对战类型->1是赢,0是总局数 Moster EnumMilestone //野怪统计 地图ID->怪物ID Task EnumMilestone - Pet EnumMilestone //宠物 属性->属性值->ID + Pet EnumMilestone //宠物 属性->属性值->ID 击杀-捕捉-炫彩击杀-炫彩捕捉 }]() const TableNameMilestone = "player_milestone"