Commit df747513 authored by 张宇迪's avatar 张宇迪

Merge branch 'dev'

parents 8b87c737 38444757
workspace:
path: src/gitlab.wodcloud.com/apaas/apaas-meshproxy
clone:
git:
image: registry.cn-qingdao.aliyuncs.com/wod/devops-git-arm64:1.0
dns: 223.5.5.5
pipeline:
go:
image: registry.cn-qingdao.aliyuncs.com/wod/devops-go-arm64:1.13.12-stretch
dns: 223.5.5.5
environment:
- GOPROXY=https://goproxy.cn,direct
main: src
binary: proxy
volumes:
- /data/cache/gopath/pkg:/drone/pkg
docker-dev:
dns: 223.5.5.5
image: registry.cn-qingdao.aliyuncs.com/wod/devops-docker-arm64:1.0
volumes:
- /var/run/docker.sock:/var/run/docker.sock
base: registry.cn-qingdao.aliyuncs.com/wod/busybox-arm64:1.32.0-glibc
repo: wod/apaas-meshproxy-arm64
dockerfile: build/arm.dockerfile
version: "v3.0.0"
channel: alpha
registry: registry.cn-qingdao.aliyuncs.com
secrets:
- source: REGISTRY_USER_ALIYUN
target: REGISTRY_USER
- source: REGISTRY_PASSWORD_ALIYUN
target: REGISTRY_PASSWORD
when:
branch: [dev]
docker-master:
dns: 223.5.5.5
image: registry.cn-qingdao.aliyuncs.com/wod/devops-docker-arm64:1.0
volumes:
- /var/run/docker.sock:/var/run/docker.sock
base: registry.cn-qingdao.aliyuncs.com/wod/busybox-arm64:1.32.0-glibc
repo: wod/apaas-meshproxy-arm64
dockerfile: build/arm.dockerfile
version: "v3.0"
registry: registry.cn-qingdao.aliyuncs.com
secrets:
- source: REGISTRY_USER_ALIYUN
target: REGISTRY_USER
- source: REGISTRY_PASSWORD_ALIYUN
target: REGISTRY_PASSWORD
when:
branch: [master]
......@@ -22,7 +22,7 @@ pipeline:
- /var/run/docker.sock:/var/run/docker.sock
base: registry.cn-qingdao.aliyuncs.com/wod/alpine-glibc:3.8
repo: apaas/apaas-meshproxy
version: 1.0.0
version: v3.0.0
channel: alpha
registry: hub.wodcloud.com
secrets:
......@@ -39,7 +39,7 @@ pipeline:
- /var/run/docker.sock:/var/run/docker.sock
base: registry.cn-qingdao.aliyuncs.com/wod/alpine-glibc:3.8
repo: apaas/apaas-meshproxy
version: "1.0"
version: "v3.0"
registry: hub.wodcloud.com
secrets:
- source: REGISTRY_USER
......
FROM {{ BASEIMAGE }}
MAINTAINER {{ AUTHOR }}
LABEL Author={{ AUTHOR }} Name={{ PROJECT }} Version={{ VERSION }}
COPY ./dist/. /app
EXPOSE 80
ENTRYPOINT ["/app/proxy", "--port=80","--prefix=/bgmesh/fiddler"]
......@@ -11,6 +11,7 @@ import (
"github.com/vulcand/oxy/testutils"
"gitlab.wodcloud.com/apaas/apaas-meshproxy/src/model"
"gitlab.wodcloud.com/apaas/apaas-meshproxy/src/service"
"gitlab.wodcloud.com/apaas/apaas-meshproxy/src/tools"
"io/ioutil"
"net/http"
"strconv"
......@@ -176,3 +177,41 @@ func getHost(url string) (path string) {
}
return
}
func HealthCheck(c *gin.Context) {
res := model.WebRes{}
proxyData, err := service.GetReqPath()
if err != nil {
res.Data = err.Error()
c.JSON(500, res)
return
}
var requstMethod string
//获取真实地址1GET 2POST 3 PUT 4 DELETE
if proxyData.ReqType == 1 {
requstMethod = "GET"
} else if proxyData.ReqType == 2 {
requstMethod = "POST"
} else if proxyData.ReqType == 3 {
requstMethod = "PUT"
} else if proxyData.ReqType == 4 {
requstMethod = "DELETE"
}
header := make(map[string]string, 0)
resp, err := tools.ProxySendRes(c.Request, requstMethod, proxyData.ReqUrl, "", header)
if err != nil {
res.Data = err.Error()
c.JSON(500, res)
return
}
fmt.Println(resp)
if resp.StatusCode < 400 {
res.Data = "success"
} else {
res.Data = "fail"
}
res.Success = 1
//请求真实地址根据返回状态码判断是否服务可用
c.JSON(200, res)
return
}
......@@ -18,7 +18,7 @@ import (
var (
argPort = pflag.Int("port", 8011, "")
argPrefix = pflag.String("prefix", "/bgmesh/fiddler", "")
meshId = pflag.String("meshId", "", "")
meshId = pflag.String("meshId", "149", "")
redisUrl = pflag.String("redisUrl", "redis://apaas-redis.apaas-v3:6379", "")
redisTag = pflag.String("redisTag", "apaas-mesh-proxy", "")
confPath = pflag.String("confPath", "/app/config/proxy.json", "")
......
package tables
type Service struct {
Id int `json:"id"xorm:"pk"`
ReqUrl string `json:"req_url"`
ReqType int `json:"req_type"`
//ReqType string `json:"req_type"`
}
......@@ -32,8 +32,8 @@ func Load(middleware ...gin.HandlerFunc) http.Handler {
e.Use(middleware...)
root := e.Group(fmt.Sprintf("%s/%s", config.Prefix, config.MeshId))
{
root.Any("/:applyId", handler.Proxy)
root.GET("/:applyId/health", handler.Proxy)
root.GET("/health", handler.HealthCheck)
root.Any("/service/:applyId", handler.Proxy)
}
return e
}
......@@ -16,6 +16,7 @@ import (
"gitlab.wodcloud.com/apaas/apaas-meshproxy/src/dao"
"gitlab.wodcloud.com/apaas/apaas-meshproxy/src/model"
"gitlab.wodcloud.com/apaas/apaas-meshproxy/src/model/request"
"gitlab.wodcloud.com/apaas/apaas-meshproxy/src/model/tables"
"gitlab.wodcloud.com/apaas/apaas-meshproxy/src/tools"
"gitlab.wodcloud.com/apaas/apaas-meshproxy/src/tools/dataconvertutil"
"strconv"
......@@ -444,3 +445,14 @@ func GetRealPath(applyId string) (res model.ProxyData, err error) {
}
return
}
// 获取真实地址
func GetReqPath() (res tables.Service, err error) {
db, err := client.GetConnect()
if err != nil {
return
}
res = tables.Service{}
_, err = db.ID(config.MeshId).Get(&res)
return
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment