修改反向代理实现方式

This commit is contained in:
GoEdgeLab
2020-09-21 20:21:26 +08:00
parent 8a1cfa92ca
commit 20fafde4ba
7 changed files with 58 additions and 58 deletions

View File

@@ -58,7 +58,7 @@ func (this *APINode) listenRPC() error {
pb.RegisterNodeClusterServiceServer(rpcServer, &services.NodeClusterService{})
pb.RegisterNodeIPAddressServiceServer(rpcServer, &services.NodeIPAddressService{})
pb.RegisterAPINodeServiceServer(rpcServer, &services.APINodeService{})
pb.RegisterOriginServerServiceServer(rpcServer, &services.OriginServerService{})
pb.RegisterOriginServiceServer(rpcServer, &services.OriginService{})
pb.RegisterHTTPWebServiceServer(rpcServer, &services.HTTPWebService{})
pb.RegisterReverseProxyServiceServer(rpcServer, &services.ReverseProxyService{})
pb.RegisterHTTPGzipServiceServer(rpcServer, &services.HTTPGzipService{})

View File

@@ -13,57 +13,57 @@ import (
)
const (
OriginServerStateEnabled = 1 // 已启用
OriginServerStateDisabled = 0 // 已禁用
OriginStateEnabled = 1 // 已启用
OriginStateDisabled = 0 // 已禁用
)
type OriginServerDAO dbs.DAO
type OriginDAO dbs.DAO
func NewOriginServerDAO() *OriginServerDAO {
return dbs.NewDAO(&OriginServerDAO{
func NewOriginDAO() *OriginDAO {
return dbs.NewDAO(&OriginDAO{
DAOObject: dbs.DAOObject{
DB: Tea.Env,
Table: "edgeOriginServers",
Model: new(OriginServer),
Table: "edgeOrigins",
Model: new(Origin),
PkName: "id",
},
}).(*OriginServerDAO)
}).(*OriginDAO)
}
var SharedOriginServerDAO = NewOriginServerDAO()
var SharedOriginDAO = NewOriginDAO()
// 启用条目
func (this *OriginServerDAO) EnableOriginServer(id int64) error {
func (this *OriginDAO) EnableOrigin(id int64) error {
_, err := this.Query().
Pk(id).
Set("state", OriginServerStateEnabled).
Set("state", OriginStateEnabled).
Update()
return err
}
// 禁用条目
func (this *OriginServerDAO) DisableOriginServer(id int64) error {
func (this *OriginDAO) DisableOrigin(id int64) error {
_, err := this.Query().
Pk(id).
Set("state", OriginServerStateDisabled).
Set("state", OriginStateDisabled).
Update()
return err
}
// 查找启用中的条目
func (this *OriginServerDAO) FindEnabledOriginServer(id int64) (*OriginServer, error) {
func (this *OriginDAO) FindEnabledOrigin(id int64) (*Origin, error) {
result, err := this.Query().
Pk(id).
Attr("state", OriginServerStateEnabled).
Attr("state", OriginStateEnabled).
Find()
if result == nil {
return nil, err
}
return result.(*OriginServer), err
return result.(*Origin), err
}
// 根据主键查找名称
func (this *OriginServerDAO) FindOriginServerName(id int64) (string, error) {
func (this *OriginDAO) FindOriginName(id int64) (string, error) {
return this.Query().
Pk(id).
Result("name").
@@ -71,13 +71,13 @@ func (this *OriginServerDAO) FindOriginServerName(id int64) (string, error) {
}
// 创建源站
func (this *OriginServerDAO) CreateOriginServer(name string, addrJSON string, description string) (originId int64, err error) {
op := NewOriginServerOperator()
func (this *OriginDAO) CreateOrigin(name string, addrJSON string, description string) (originId int64, err error) {
op := NewOriginOperator()
op.IsOn = true
op.Name = name
op.Addr = addrJSON
op.Description = description
op.State = OriginServerStateEnabled
op.State = OriginStateEnabled
_, err = this.Save(op)
if err != nil {
return
@@ -86,11 +86,11 @@ func (this *OriginServerDAO) CreateOriginServer(name string, addrJSON string, de
}
// 修改源站
func (this *OriginServerDAO) UpdateOriginServer(originId int64, name string, addrJSON string, description string) error {
func (this *OriginDAO) UpdateOrigin(originId int64, name string, addrJSON string, description string) error {
if originId <= 0 {
return errors.New("invalid originId")
}
op := NewOriginServerOperator()
op := NewOriginOperator()
op.Id = originId
op.Name = name
op.Addr = addrJSON
@@ -101,8 +101,8 @@ func (this *OriginServerDAO) UpdateOriginServer(originId int64, name string, add
}
// 将源站信息转换为配置
func (this *OriginServerDAO) ComposeOriginConfig(originId int64) (*serverconfigs.OriginServerConfig, error) {
origin, err := this.FindEnabledOriginServer(originId)
func (this *OriginDAO) ComposeOriginConfig(originId int64) (*serverconfigs.OriginConfig, error) {
origin, err := this.FindEnabledOrigin(originId)
if err != nil {
return nil, err
}
@@ -110,7 +110,7 @@ func (this *OriginServerDAO) ComposeOriginConfig(originId int64) (*serverconfigs
return nil, errors.New("not found")
}
config := &serverconfigs.OriginServerConfig{
config := &serverconfigs.OriginConfig{
Id: int64(origin.Id),
IsOn: origin.IsOn == 1,
Version: int(origin.Version),
@@ -200,7 +200,7 @@ func (this *OriginServerDAO) ComposeOriginConfig(originId int64) (*serverconfigs
}
if len(origin.Ftp) > 0 && origin.Ftp != "null" {
ftp := &serverconfigs.OriginServerFTPConfig{}
ftp := &serverconfigs.OriginFTPConfig{}
err = json.Unmarshal([]byte(origin.Ftp), ftp)
if err != nil {
return nil, err

View File

@@ -1,7 +1,7 @@
package models
// 源站
type OriginServer struct {
type Origin struct {
Id uint32 `field:"id"` // ID
AdminId uint32 `field:"adminId"` // 管理员ID
UserId uint32 `field:"userId"` // 用户ID
@@ -29,7 +29,7 @@ type OriginServer struct {
State uint8 `field:"state"` // 状态
}
type OriginServerOperator struct {
type OriginOperator struct {
Id interface{} // ID
AdminId interface{} // 管理员ID
UserId interface{} // 用户ID
@@ -57,6 +57,6 @@ type OriginServerOperator struct {
State interface{} // 状态
}
func NewOriginServerOperator() *OriginServerOperator {
return &OriginServerOperator{}
func NewOriginOperator() *OriginOperator {
return &OriginOperator{}
}

View File

@@ -7,7 +7,7 @@ import (
)
// 解析地址
func (this *OriginServer) DecodeAddr() (*serverconfigs.NetworkAddressConfig, error) {
func (this *Origin) DecodeAddr() (*serverconfigs.NetworkAddressConfig, error) {
if len(this.Addr) == 0 || this.Addr == "null" {
return nil, errors.New("addr is empty")
}

View File

@@ -83,35 +83,35 @@ func (this *ReverseProxyDAO) ComposeReverseProxyConfig(reverseProxyId int64) (*s
config.Scheduling = schedulingConfig
}
if len(reverseProxy.PrimaryOrigins) > 0 && reverseProxy.PrimaryOrigins != "null" {
originConfigs := []*serverconfigs.OriginServerConfig{}
err = json.Unmarshal([]byte(reverseProxy.PrimaryOrigins), &originConfigs)
originRefs := []*serverconfigs.OriginRef{}
err = json.Unmarshal([]byte(reverseProxy.PrimaryOrigins), &originRefs)
if err != nil {
return nil, err
}
for _, originConfig := range originConfigs {
newOriginConfig, err := SharedOriginServerDAO.ComposeOriginConfig(originConfig.Id)
for _, ref := range originRefs {
originConfig, err := SharedOriginDAO.ComposeOriginConfig(ref.OriginId)
if err != nil {
return nil, err
}
if newOriginConfig != nil {
config.AddPrimaryOrigin(newOriginConfig)
if originConfig != nil {
config.AddPrimaryOrigin(originConfig)
}
}
}
if len(reverseProxy.BackupOrigins) > 0 && reverseProxy.BackupOrigins != "null" {
originConfigs := []*serverconfigs.OriginServerConfig{}
err = json.Unmarshal([]byte(reverseProxy.BackupOrigins), &originConfigs)
originRefs := []*serverconfigs.OriginRef{}
err = json.Unmarshal([]byte(reverseProxy.BackupOrigins), &originRefs)
if err != nil {
return nil, err
}
for _, originConfig := range originConfigs {
newOriginConfig, err := SharedOriginServerDAO.ComposeOriginConfig(int64(originConfig.Id))
for _, originConfig := range originRefs {
originConfig, err := SharedOriginDAO.ComposeOriginConfig(int64(originConfig.OriginId))
if err != nil {
return nil, err
}
if newOriginConfig != nil {
config.AddBackupOrigin(newOriginConfig)
if originConfig != nil {
config.AddBackupOrigin(originConfig)
}
}
}

View File

@@ -11,11 +11,11 @@ import (
)
// 源站相关管理
type OriginServerService struct {
type OriginService struct {
}
// 创建源站
func (this *OriginServerService) CreateOriginServer(ctx context.Context, req *pb.CreateOriginServerRequest) (*pb.CreateOriginServerResponse, error) {
func (this *OriginService) CreateOrigin(ctx context.Context, req *pb.CreateOriginRequest) (*pb.CreateOriginResponse, error) {
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
if err != nil {
return nil, err
@@ -29,16 +29,16 @@ func (this *OriginServerService) CreateOriginServer(ctx context.Context, req *pb
"portRange": req.Addr.PortRange,
"host": req.Addr.Host,
}
originId, err := models.SharedOriginServerDAO.CreateOriginServer(req.Name, string(addrMap.AsJSON()), req.Description)
originId, err := models.SharedOriginDAO.CreateOrigin(req.Name, string(addrMap.AsJSON()), req.Description)
if err != nil {
return nil, err
}
return &pb.CreateOriginServerResponse{OriginId: originId}, nil
return &pb.CreateOriginResponse{OriginId: originId}, nil
}
// 修改源站
func (this *OriginServerService) UpdateOriginServer(ctx context.Context, req *pb.UpdateOriginServerRequest) (*pb.RPCUpdateSuccess, error) {
func (this *OriginService) UpdateOrigin(ctx context.Context, req *pb.UpdateOriginRequest) (*pb.RPCUpdateSuccess, error) {
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
if err != nil {
return nil, err
@@ -52,7 +52,7 @@ func (this *OriginServerService) UpdateOriginServer(ctx context.Context, req *pb
"portRange": req.Addr.PortRange,
"host": req.Addr.Host,
}
err = models.SharedOriginServerDAO.UpdateOriginServer(req.OriginId, req.Name, string(addrMap.AsJSON()), req.Description)
err = models.SharedOriginDAO.UpdateOrigin(req.OriginId, req.Name, string(addrMap.AsJSON()), req.Description)
if err != nil {
return nil, err
}
@@ -61,19 +61,19 @@ func (this *OriginServerService) UpdateOriginServer(ctx context.Context, req *pb
}
// 查找单个源站信息
func (this *OriginServerService) FindEnabledOriginServer(ctx context.Context, req *pb.FindEnabledOriginServerRequest) (*pb.FindEnabledOriginServerResponse, error) {
func (this *OriginService) FindEnabledOrigin(ctx context.Context, req *pb.FindEnabledOriginRequest) (*pb.FindEnabledOriginResponse, error) {
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
if err != nil {
return nil, err
}
origin, err := models.SharedOriginServerDAO.FindEnabledOriginServer(req.OriginId)
origin, err := models.SharedOriginDAO.FindEnabledOrigin(req.OriginId)
if err != nil {
return nil, err
}
if origin == nil {
return &pb.FindEnabledOriginServerResponse{Origin: nil}, nil
return &pb.FindEnabledOriginResponse{Origin: nil}, nil
}
addr, err := origin.DecodeAddr()
@@ -81,7 +81,7 @@ func (this *OriginServerService) FindEnabledOriginServer(ctx context.Context, re
return nil, err
}
result := &pb.OriginServer{
result := &pb.Origin{
Id: int64(origin.Id),
IsOn: origin.IsOn == 1,
Name: origin.Name,
@@ -92,17 +92,17 @@ func (this *OriginServerService) FindEnabledOriginServer(ctx context.Context, re
},
Description: origin.Description,
}
return &pb.FindEnabledOriginServerResponse{Origin: result}, nil
return &pb.FindEnabledOriginResponse{Origin: result}, nil
}
// 查找源站配置
func (this *OriginServerService) FindEnabledOriginServerConfig(ctx context.Context, req *pb.FindEnabledOriginServerConfigRequest) (*pb.FindEnabledOriginServerConfigResponse, error) {
func (this *OriginService) FindEnabledOriginConfig(ctx context.Context, req *pb.FindEnabledOriginConfigRequest) (*pb.FindEnabledOriginConfigResponse, error) {
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
if err != nil {
return nil, err
}
config, err := models.SharedOriginServerDAO.ComposeOriginConfig(req.OriginId)
config, err := models.SharedOriginDAO.ComposeOriginConfig(req.OriginId)
if err != nil {
return nil, err
}
@@ -112,5 +112,5 @@ func (this *OriginServerService) FindEnabledOriginServerConfig(ctx context.Conte
return nil, err
}
return &pb.FindEnabledOriginServerConfigResponse{OriginJSON: configData}, nil
return &pb.FindEnabledOriginConfigResponse{OriginJSON: configData}, nil
}