diff --git a/internal/db/models/reverse_proxy_dao.go b/internal/db/models/reverse_proxy_dao.go index dd312e9b..a10e2189 100644 --- a/internal/db/models/reverse_proxy_dao.go +++ b/internal/db/models/reverse_proxy_dao.go @@ -99,6 +99,7 @@ func (this *ReverseProxyDAO) ComposeReverseProxyConfig(reverseProxyId int64) (*s config := &serverconfigs.ReverseProxyConfig{} config.Id = int64(reverseProxy.Id) config.IsOn = reverseProxy.IsOn == 1 + config.RequestHostType = types.Int8(reverseProxy.RequestHostType) config.RequestHost = reverseProxy.RequestHost config.RequestURI = reverseProxy.RequestURI config.StripPrefix = reverseProxy.StripPrefix @@ -223,13 +224,19 @@ func (this *ReverseProxyDAO) UpdateReverseProxyBackupOrigins(reverseProxyId int6 } // 修改是否启用 -func (this *ReverseProxyDAO) UpdateReverseProxy(reverseProxyId int64, requestHost string, requestURI string, stripPrefix string, autoFlush bool) error { +func (this *ReverseProxyDAO) UpdateReverseProxy(reverseProxyId int64, requestHostType int8, requestHost string, requestURI string, stripPrefix string, autoFlush bool) error { if reverseProxyId <= 0 { return errors.New("invalid reverseProxyId") } op := NewReverseProxyOperator() op.Id = reverseProxyId + + if requestHostType < 0 { + requestHostType = 0 + } + op.RequestHostType = requestHostType + op.RequestHost = requestHost op.RequestURI = requestURI op.StripPrefix = stripPrefix diff --git a/internal/db/models/reverse_proxy_model.go b/internal/db/models/reverse_proxy_model.go index aa183ff3..4c665438 100644 --- a/internal/db/models/reverse_proxy_model.go +++ b/internal/db/models/reverse_proxy_model.go @@ -2,37 +2,39 @@ package models // 反向代理配置 type ReverseProxy struct { - Id uint32 `field:"id"` // ID - AdminId uint32 `field:"adminId"` // 管理员ID - UserId uint32 `field:"userId"` // 用户ID - TemplateId uint32 `field:"templateId"` // 模版ID - IsOn uint8 `field:"isOn"` // 是否启用 - Scheduling string `field:"scheduling"` // 调度算法 - PrimaryOrigins string `field:"primaryOrigins"` // 主要源站 - BackupOrigins string `field:"backupOrigins"` // 备用源站 - StripPrefix string `field:"stripPrefix"` // 去除URL前缀 - RequestHost string `field:"requestHost"` // 请求Host - RequestURI string `field:"requestURI"` // 请求URI - AutoFlush uint8 `field:"autoFlush"` // 是否自动刷新缓冲区 - State uint8 `field:"state"` // 状态 - CreatedAt uint64 `field:"createdAt"` // 创建时间 + Id uint32 `field:"id"` // ID + AdminId uint32 `field:"adminId"` // 管理员ID + UserId uint32 `field:"userId"` // 用户ID + TemplateId uint32 `field:"templateId"` // 模版ID + IsOn uint8 `field:"isOn"` // 是否启用 + Scheduling string `field:"scheduling"` // 调度算法 + PrimaryOrigins string `field:"primaryOrigins"` // 主要源站 + BackupOrigins string `field:"backupOrigins"` // 备用源站 + StripPrefix string `field:"stripPrefix"` // 去除URL前缀 + RequestHostType uint8 `field:"requestHostType"` // 请求Host类型 + RequestHost string `field:"requestHost"` // 请求Host + RequestURI string `field:"requestURI"` // 请求URI + AutoFlush uint8 `field:"autoFlush"` // 是否自动刷新缓冲区 + State uint8 `field:"state"` // 状态 + CreatedAt uint64 `field:"createdAt"` // 创建时间 } type ReverseProxyOperator struct { - Id interface{} // ID - AdminId interface{} // 管理员ID - UserId interface{} // 用户ID - TemplateId interface{} // 模版ID - IsOn interface{} // 是否启用 - Scheduling interface{} // 调度算法 - PrimaryOrigins interface{} // 主要源站 - BackupOrigins interface{} // 备用源站 - StripPrefix interface{} // 去除URL前缀 - RequestHost interface{} // 请求Host - RequestURI interface{} // 请求URI - AutoFlush interface{} // 是否自动刷新缓冲区 - State interface{} // 状态 - CreatedAt interface{} // 创建时间 + Id interface{} // ID + AdminId interface{} // 管理员ID + UserId interface{} // 用户ID + TemplateId interface{} // 模版ID + IsOn interface{} // 是否启用 + Scheduling interface{} // 调度算法 + PrimaryOrigins interface{} // 主要源站 + BackupOrigins interface{} // 备用源站 + StripPrefix interface{} // 去除URL前缀 + RequestHostType interface{} // 请求Host类型 + RequestHost interface{} // 请求Host + RequestURI interface{} // 请求URI + AutoFlush interface{} // 是否自动刷新缓冲区 + State interface{} // 状态 + CreatedAt interface{} // 创建时间 } func NewReverseProxyOperator() *ReverseProxyOperator { diff --git a/internal/rpc/services/service_reverse_proxy.go b/internal/rpc/services/service_reverse_proxy.go index 929ed8a4..7a166bcf 100644 --- a/internal/rpc/services/service_reverse_proxy.go +++ b/internal/rpc/services/service_reverse_proxy.go @@ -6,6 +6,7 @@ import ( "github.com/TeaOSLab/EdgeAPI/internal/db/models" rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" + "github.com/iwind/TeaGo/types" ) type ReverseProxyService struct { @@ -130,7 +131,7 @@ func (this *ReverseProxyService) UpdateReverseProxy(ctx context.Context, req *pb return nil, err } - err = models.SharedReverseProxyDAO.UpdateReverseProxy(req.ReverseProxyId, req.RequestHost, req.RequestURI, req.StripPrefix, req.AutoFlush) + err = models.SharedReverseProxyDAO.UpdateReverseProxy(req.ReverseProxyId, types.Int8(req.RequestHostType), req.RequestHost, req.RequestURI, req.StripPrefix, req.AutoFlush) if err != nil { return nil, err }