Documentation
¶
Overview ¶
Package goproxy HTTP(S)代理, 支持中间人代理解密HTTPS数据
Index ¶
- func CloneBody(b io.ReadCloser) (r io.ReadCloser, body []byte, err error)
- func CloneHeader(h http.Header) http.Header
- func CopyHeader(dst, src http.Header)
- type Config
- type Context
- type DefaultDelegate
- func (h *DefaultDelegate) Auth(ctx *Context, rw http.ResponseWriter)
- func (h *DefaultDelegate) BeforeRequest(ctx *Context)
- func (h *DefaultDelegate) BeforeResponse(ctx *Context, resp *http.Response, err error)
- func (h *DefaultDelegate) Connect(ctx *Context, rw http.ResponseWriter)
- func (h *DefaultDelegate) ErrorLog(err error)
- func (h *DefaultDelegate) Finish(ctx *Context)
- type Delegate
- type Option
- type Proxy
- type Server
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CloneBody ¶ added in v1.4.4
func CloneBody(b io.ReadCloser) (r io.ReadCloser, body []byte, err error)
CloneBody 拷贝Body
func CloneHeader ¶ added in v1.4.4
CloneHeader 深拷贝Header
Types ¶
type Config ¶
Config HTTP config
type Context ¶
type Context struct {
Req *http.Request
Data map[interface{}]interface{}
// contains filtered or unexported fields
}
Context 代理上下文
type DefaultDelegate ¶ added in v1.4.4
type DefaultDelegate struct {
Delegate
}
DefaultDelegate 默认Handler什么也不做
func (*DefaultDelegate) Auth ¶ added in v1.4.4
func (h *DefaultDelegate) Auth(ctx *Context, rw http.ResponseWriter)
func (*DefaultDelegate) BeforeRequest ¶ added in v1.4.4
func (h *DefaultDelegate) BeforeRequest(ctx *Context)
func (*DefaultDelegate) BeforeResponse ¶ added in v1.4.4
func (h *DefaultDelegate) BeforeResponse(ctx *Context, resp *http.Response, err error)
func (*DefaultDelegate) Connect ¶ added in v1.4.4
func (h *DefaultDelegate) Connect(ctx *Context, rw http.ResponseWriter)
func (*DefaultDelegate) ErrorLog ¶ added in v1.4.4
func (h *DefaultDelegate) ErrorLog(err error)
func (*DefaultDelegate) Finish ¶ added in v1.4.4
func (h *DefaultDelegate) Finish(ctx *Context)
type Delegate ¶ added in v1.4.4
type Delegate interface {
// Connect 收到客户端连接
Connect(ctx *Context, rw http.ResponseWriter)
// Auth 代理身份认证
Auth(ctx *Context, rw http.ResponseWriter)
// BeforeRequest HTTP请求前 设置X-Forwarded-For, 修改Header、Body
BeforeRequest(ctx *Context)
// BeforeResponse 响应发送到客户端前, 修改Header、Body、Status Code
BeforeResponse(ctx *Context, resp *http.Response, err error)
// ParentProxy 上级代理
// ParentProxy(*http.Request) (*url.URL, error)
// Finish 本次请求结束
Finish(ctx *Context)
// 记录错误信息
ErrorLog(err error)
}
type Option ¶ added in v1.4.4
type Option func(*options)
func WithDecryptHTTPS ¶ added in v1.4.4
WithDecryptHTTPS 中间人代理, 解密HTTPS, 需实现证书缓存接口
func WithDisableKeepAlive ¶ added in v1.4.4
WithDisableKeepAlive 连接是否重用
func WithTransport ¶ added in v1.4.4
WithTransport 自定义http transport
type Proxy ¶
type Proxy struct {
// contains filtered or unexported fields
}
Proxy 实现了http.Handler接口
func (*Proxy) ClientConnNum ¶ added in v1.4.4
ClientConnNum 获取客户端连接数
type Server ¶
Server ...
func (*Server) GracefulStop ¶
GracefulStop implements server.Server interface it will stop gin server gracefully
func (*Server) Info ¶
func (s *Server) Info() *server.ServiceInfo
Info returns server info, used by governor and consumer balancer
Click to show internal directories.
Click to hide internal directories.