Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
apaas-meshproxy
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
gzga-jzapi
apaas-meshproxy
Commits
7babed0d
Commit
7babed0d
authored
Nov 06, 2019
by
gaoshiyao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
更新路由设置
parent
07037c98
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
148 additions
and
4 deletions
+148
-4
src/config/conf.go
src/config/conf.go
+1
-1
src/handler/counthandler.go
src/handler/counthandler.go
+2
-2
src/handler/proxyhandler.go
src/handler/proxyhandler.go
+1
-1
src/tools/proxy.go
src/tools/proxy.go
+144
-0
No files found.
src/config/conf.go
View file @
7babed0d
...
...
@@ -7,7 +7,7 @@ var (
)
var
ProxyConf
=
struct
{
UUID
string
`json:"uui
d"`
MeshId
string
`json:"meshI
d"`
Url
string
`json:"url"`
Method
string
`json:"method"`
Params
[]
Param
`json:"params"`
...
...
src/handler/counthandler.go
View file @
7babed0d
...
...
@@ -12,9 +12,9 @@ func GetCount(c *gin.Context) {
if
err
!=
nil
{
c
.
Error
(
err
)
}
ic
,
err
:=
redis
.
Get
(
"bgproxy"
+
config
.
ProxyConf
.
UUID
)
ic
,
err
:=
redis
.
Get
(
"bgproxy"
+
config
.
ProxyConf
.
MeshId
)
c
.
JSON
(
200
,
gin
.
H
{
"Key"
:
fmt
.
Sprintf
(
"bgproxy"
+
config
.
ProxyConf
.
UUID
),
"Key"
:
fmt
.
Sprintf
(
"bgproxy"
+
config
.
ProxyConf
.
MeshId
),
"Count"
:
ic
,
})
}
src/handler/proxyhandler.go
View file @
7babed0d
...
...
@@ -76,7 +76,7 @@ func count() error {
if
err
!=
nil
{
return
err
}
ic
,
err
:=
redis
.
Incr
(
"bgproxy"
+
config
.
ProxyConf
.
UUID
)
ic
,
err
:=
redis
.
Incr
(
"bgproxy"
+
config
.
ProxyConf
.
MeshId
)
_
,
err
=
ic
.
Result
()
return
err
}
src/tools/proxy.go
0 → 100644
View file @
7babed0d
package
tools
import
(
"errors"
"fmt"
"io/ioutil"
"net"
"net/http"
"strings"
)
//ProxySend , http请求
func
ProxySend
(
incomingReq
*
http
.
Request
,
sendType
string
,
url
string
,
body
string
,
header
map
[
string
]
string
)
(
result
[]
byte
,
err
error
)
{
client
:=
&
http
.
Client
{}
var
outgoingReq
*
http
.
Request
if
len
(
body
)
>
0
{
outgoingReq
,
err
=
http
.
NewRequest
(
sendType
,
url
,
strings
.
NewReader
(
body
))
if
err
!=
nil
{
fmt
.
Println
(
err
)
}
}
else
{
outgoingReq
,
_
=
http
.
NewRequest
(
sendType
,
url
,
nil
)
}
if
header
==
nil
{
header
=
make
(
map
[
string
]
string
)
}
if
incomingReq
!=
nil
{
b3Headers
:=
getForwardHeaders
(
incomingReq
)
for
k
,
v
:=
range
b3Headers
{
header
[
k
]
=
v
}
}
for
k
,
v
:=
range
header
{
outgoingReq
.
Header
.
Set
(
k
,
v
)
}
resp
,
err
:=
client
.
Do
(
outgoingReq
)
if
err
!=
nil
{
return
nil
,
err
}
else
{
defer
resp
.
Body
.
Close
()
body
,
erra
:=
ioutil
.
ReadAll
(
resp
.
Body
)
return
body
,
erra
}
}
//ProxySend , http请求
func
ProxySendRes
(
incomingReq
*
http
.
Request
,
sendType
string
,
url
string
,
body
string
,
header
map
[
string
]
string
)
(
result
*
http
.
Response
,
err
error
)
{
client
:=
&
http
.
Client
{}
var
outgoingReq
*
http
.
Request
if
len
(
body
)
>
0
{
outgoingReq
,
err
=
http
.
NewRequest
(
sendType
,
url
,
strings
.
NewReader
(
body
))
if
err
!=
nil
{
fmt
.
Println
(
err
)
}
}
else
{
outgoingReq
,
_
=
http
.
NewRequest
(
sendType
,
url
,
nil
)
}
if
header
==
nil
{
header
=
make
(
map
[
string
]
string
)
}
if
incomingReq
!=
nil
{
b3Headers
:=
getForwardHeaders
(
incomingReq
)
for
k
,
v
:=
range
b3Headers
{
header
[
k
]
=
v
}
}
for
k
,
v
:=
range
header
{
outgoingReq
.
Header
.
Set
(
k
,
v
)
}
resp
,
err
:=
client
.
Do
(
outgoingReq
)
return
resp
,
err
}
//GetCookieStr , 获取cookie字符串
func
GetCookieStr
(
req
*
http
.
Request
)
(
str
string
,
err
error
)
{
cookies
:=
req
.
Cookies
()
_
,
err
=
req
.
Cookie
(
"awetoken"
)
if
err
!=
nil
{
err
=
errors
.
New
(
"用户未登录"
)
return
""
,
err
}
else
{
for
_
,
v
:=
range
cookies
{
str
+=
v
.
Name
+
"="
+
v
.
Value
+
";"
}
return
str
,
nil
}
}
func
getForwardHeaders
(
incomingReq
*
http
.
Request
)
map
[
string
]
string
{
headers
:=
make
(
map
[
string
]
string
)
xRequestID
:=
incomingReq
.
Header
.
Get
(
"x-request-id"
)
if
len
(
xRequestID
)
>
0
{
headers
[
"x-request-id"
]
=
incomingReq
.
Header
.
Get
(
"x-request-id"
)
headers
[
"x-b3-traceid"
]
=
incomingReq
.
Header
.
Get
(
"x-b3-traceid"
)
headers
[
"x-b3-spanid"
]
=
incomingReq
.
Header
.
Get
(
"x-b3-spanid"
)
if
len
(
incomingReq
.
Header
.
Get
(
"x-b3-parentspanid"
))
>
0
{
headers
[
"x-b3-parentspanid"
]
=
incomingReq
.
Header
.
Get
(
"x-b3-parentspanid"
)
}
headers
[
"x-b3-sampled"
]
=
incomingReq
.
Header
.
Get
(
"x-b3-sampled"
)
if
len
(
incomingReq
.
Header
.
Get
(
"x-b3-flags"
))
>
0
{
headers
[
"x-b3-flags"
]
=
incomingReq
.
Header
.
Get
(
"x-b3-flags"
)
}
if
len
(
incomingReq
.
Header
.
Get
(
"x-ot-span-context"
))
>
0
{
headers
[
"x-ot-span-context"
]
=
incomingReq
.
Header
.
Get
(
"x-ot-span-context"
)
}
}
return
headers
}
//获取ip地址
func
RemoteIp
(
req
*
http
.
Request
)
string
{
remoteAddr
:=
req
.
RemoteAddr
if
ip
:=
req
.
Header
.
Get
(
"X-Real-Ip"
);
ip
!=
""
{
remoteAddr
=
ip
}
else
if
ip
=
req
.
Header
.
Get
(
"X-Forwarded-For"
);
ip
!=
""
{
remoteAddr
=
ip
}
else
{
remoteAddr
,
_
,
_
=
net
.
SplitHostPort
(
remoteAddr
)
}
if
remoteAddr
==
"::1"
{
remoteAddr
=
"127.0.0.1"
}
return
remoteAddr
}
//获取mac地址
func
GetMac
()
(
macAddrs
string
)
{
netInterfaces
,
err
:=
net
.
Interfaces
()
if
err
!=
nil
{
fmt
.
Printf
(
"fail to get net interfaces: %v"
,
err
)
return
macAddrs
}
for
_
,
netInterface
:=
range
netInterfaces
{
macAddr
:=
netInterface
.
HardwareAddr
.
String
()
if
len
(
macAddr
)
==
0
{
continue
}
macAddrs
+=
macAddr
+
";"
}
rs
:=
[]
rune
(
macAddrs
)
macAddrs
=
string
(
rs
[
:
len
(
rs
)
-
1
])
return
macAddrs
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment