mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-05 00:43:05 +08:00
反向代理支持RequestPath、RequestURI等
This commit is contained in:
@@ -93,6 +93,9 @@ func (this *ReverseProxyDAO) ComposeReverseProxyConfig(reverseProxyId int64) (*s
|
|||||||
config := &serverconfigs.ReverseProxyConfig{}
|
config := &serverconfigs.ReverseProxyConfig{}
|
||||||
config.Id = int64(reverseProxy.Id)
|
config.Id = int64(reverseProxy.Id)
|
||||||
config.IsOn = reverseProxy.IsOn == 1
|
config.IsOn = reverseProxy.IsOn == 1
|
||||||
|
config.RequestHost = reverseProxy.RequestHost
|
||||||
|
config.RequestURI = reverseProxy.RequestURI
|
||||||
|
config.StripPrefix = reverseProxy.StripPrefix
|
||||||
|
|
||||||
schedulingConfig := &serverconfigs.SchedulingConfig{}
|
schedulingConfig := &serverconfigs.SchedulingConfig{}
|
||||||
if len(reverseProxy.Scheduling) > 0 && reverseProxy.Scheduling != "null" {
|
if len(reverseProxy.Scheduling) > 0 && reverseProxy.Scheduling != "null" {
|
||||||
@@ -213,11 +216,17 @@ func (this *ReverseProxyDAO) UpdateReverseProxyBackupOrigins(reverseProxyId int6
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 修改是否启用
|
// 修改是否启用
|
||||||
func (this *ReverseProxyDAO) UpdateReverseProxyIsOn(reverseProxyId int64, isOn bool) error {
|
func (this *ReverseProxyDAO) UpdateReverseProxy(reverseProxyId int64, requestHost string, requestURI string, stripPrefix string) error {
|
||||||
_, err := this.Query().
|
if reverseProxyId <= 0 {
|
||||||
Pk(reverseProxyId).
|
return errors.New("invalid reverseProxyId")
|
||||||
Set("isOn", isOn).
|
}
|
||||||
Update()
|
|
||||||
|
op := NewReverseProxyOperator()
|
||||||
|
op.Id = reverseProxyId
|
||||||
|
op.RequestHost = requestHost
|
||||||
|
op.RequestURI = requestURI
|
||||||
|
op.StripPrefix = stripPrefix
|
||||||
|
_, err := this.Save(op)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,9 @@ type ReverseProxy struct {
|
|||||||
Scheduling string `field:"scheduling"` // 调度算法
|
Scheduling string `field:"scheduling"` // 调度算法
|
||||||
PrimaryOrigins string `field:"primaryOrigins"` // 主要源站
|
PrimaryOrigins string `field:"primaryOrigins"` // 主要源站
|
||||||
BackupOrigins string `field:"backupOrigins"` // 备用源站
|
BackupOrigins string `field:"backupOrigins"` // 备用源站
|
||||||
|
StripPrefix string `field:"stripPrefix"` // 去除URL前缀
|
||||||
|
RequestHost string `field:"requestHost"` // 请求Host
|
||||||
|
RequestURI string `field:"requestURI"` // 请求URI
|
||||||
State uint8 `field:"state"` // 状态
|
State uint8 `field:"state"` // 状态
|
||||||
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||||
}
|
}
|
||||||
@@ -23,6 +26,9 @@ type ReverseProxyOperator struct {
|
|||||||
Scheduling interface{} // 调度算法
|
Scheduling interface{} // 调度算法
|
||||||
PrimaryOrigins interface{} // 主要源站
|
PrimaryOrigins interface{} // 主要源站
|
||||||
BackupOrigins interface{} // 备用源站
|
BackupOrigins interface{} // 备用源站
|
||||||
|
StripPrefix interface{} // 去除URL前缀
|
||||||
|
RequestHost interface{} // 请求Host
|
||||||
|
RequestURI interface{} // 请求URI
|
||||||
State interface{} // 状态
|
State interface{} // 状态
|
||||||
CreatedAt interface{} // 创建时间
|
CreatedAt interface{} // 创建时间
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -122,14 +122,14 @@ func (this *ReverseProxyService) UpdateReverseProxyBackupOrigins(ctx context.Con
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 修改是否启用
|
// 修改是否启用
|
||||||
func (this *ReverseProxyService) UpdateReverseProxyIsOn(ctx context.Context, req *pb.UpdateReverseProxyIsOnRequest) (*pb.RPCUpdateSuccess, error) {
|
func (this *ReverseProxyService) UpdateReverseProxy(ctx context.Context, req *pb.UpdateReverseProxyRequest) (*pb.RPCUpdateSuccess, error) {
|
||||||
// 校验请求
|
// 校验请求
|
||||||
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
|
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = models.SharedReverseProxyDAO.UpdateReverseProxyIsOn(req.ReverseProxyId, req.IsOn)
|
err = models.SharedReverseProxyDAO.UpdateReverseProxy(req.ReverseProxyId, req.RequestHost, req.RequestURI, req.StripPrefix)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user