Documentation ¶
Index ¶
- Variables
- func CheckFileExist(pidfile string) bool
- func Handler404(w http.ResponseWriter, r *http.Request)
- func Handler500(w http.ResponseWriter, r *http.Request)
- func ReadPidFromFile(pidfile string) (int, error)
- func RemoveFile(pidfile string) error
- func WritePidToFile(pidfile string) error
- type App
- type Check
- type Cmd
- type Config
- type Context
- type Domain
- type Filter
- type HeaderFilter
- type HeaderTransform
- type Host
- type HttpServer
- type Log
- type Logfmt
- type Proxy
- type ProxyCheck
- type ProxyDomain
- type ProxyHandle
- type ProxyHandleFilter
- type ProxyHandleFilterHeader
- type ProxyHandleFilterRequestURI
- type ProxyHandles
- type ProxyHeaderTransform
- type ProxyLogfmts
- type ProxyLogger
- func (this *ProxyLogger) Close()
- func (this *ProxyLogger) Error(msg ...interface{})
- func (this *ProxyLogger) Load(config *Log) (*ProxyLogger, error)
- func (this *ProxyLogger) LoadFmt(fmts *ProxyLogfmts) (*ProxyLogger, error)
- func (this *ProxyLogger) Log(msg ...interface{})
- func (this *ProxyLogger) Logfmt(variables *ProxyVariable)
- type ProxyService
- type ProxyServices
- type ProxyTarget
- type ProxyVariable
- type Rule
- type Service
- type Transform
- type ValidFunc
- type VariableExpr
Constants ¶
This section is empty.
Variables ¶
View Source
var ( INVALID_CONFIG_FILE_TYPE = errors.New("The configure file must be a json file with .json ext") INVALID_CONFIG_FILE_FORMAT = errors.New("The configure file content has invalid json format") )
Functions ¶
func CheckFileExist ¶
func Handler404 ¶
func Handler404(w http.ResponseWriter, r *http.Request)
func Handler500 ¶
func Handler500(w http.ResponseWriter, r *http.Request)
func ReadPidFromFile ¶
func RemoveFile ¶
func WritePidToFile ¶
Types ¶
type App ¶
type App struct { Domains []*Domain `json:"domains,omitempty" valid:"/^[a-z1-9-_\\.]+$a/,message_required=$name是必选项,message=$name($value)是非法域名"` Port int `json:"port,omitempty" valid:"[1,65535],message_required=$name是必选项,message=$name($value)是非法端口号"` CertFile string `json:"certfile,omitempty" valid:"optional,message=$name($value)文件路径不正确"` KeyFile string `json:"keyfile,omitempty" valid:"optional,message=$name($value)文件路径不正确"` Services []*Service `json:"services,omitempty" valid:"optional,message_type=$name必须是service数组"` AccessLog *Log `json:"access_log,omitempty" valid:"optional,message_type=$name必须是log数组"` ErrorLog *Log `json:"error_log,omitempty" valid:"optional,message_type=$name必须是log数组"` Logfmts []*Logfmt `json:"logfmts,omitempty" valid:"optional,message_type=$name必须是logfmt数组"` }
type Check ¶
type Check struct { Schema string `json:"schema,omitempty" valid:"optional,{http,https},message=$name($value)不合法"` Path string `json:"path,omitempty" valid:"[1,],message=$name($value)不合法"` Method string `json:"method,omitempty" valid:"{POST,GET},message=$name($value)不合法"` Interval int `json:"interval,omitempty" valid:"[1,3600],message=$name($value)不合法"` Timeout int `json:"timeout,omitempty" valid:"optional,[1,3600],message=$name($value)不合法"` Status int `json:"status,omitempty" valid:"optional,[100,600],message=$name($value)不合法"` Body string `json:"body,omitempty" valid:"optional,message=$name{$value)不合法"` Window int `json:"window,omitempty" valid:"[1,3600],message=$name($value)不合法"` Down int `json:"down,omitempty" valid:"[1,3600],message=$name($value)不合法"` Up int `json:"up,omitempty" valid:"[1,3600],message=$name($value)不合法"` }
type Cmd ¶
type Cmd struct {
// contains filtered or unexported fields
}
Cmd 命令行参数对象 主要用于解析命令行命令 并根据命令执行对应的动作
type Config ¶
type Config struct { Apps []*App `json:"apps,omitempty" valid:"message_required=$name是必选项,message_type=$name必须是app数组"` Services []*Service `json:"services,omitempty" valid:"optional,message_type=$name必须是service数组"` Logfmts []*Logfmt `json:"logfmts,omitempty" valid:"optional,message_type=$name必须是logfmt数组"` Syslog *Log `json:"syslog,omitempty" valid:"optional,message_type=$name非法的log对象"` // contains filtered or unexported fields }
Config 系统配置对象
type Context ¶
type Context struct {
// contains filtered or unexported fields
}
func NewContext ¶
func NewContext(w http.ResponseWriter, req *http.Request) *Context
type Filter ¶
type Filter struct { RequestURIs []string `json:"request_uris,omitempty" valid:"optional,message=$name($value)不合法"` Headers []*HeaderFilter `json:"headers,omitempty" valid:"optional,message=$name非法的header_filter对象"` }
type HeaderFilter ¶
type HeaderTransform ¶
type HeaderTransform struct { When string `json:"when,omitempty" valid:"{request,response},message=$name($value)不合法"` Method string `json:"method,omitempty" valid:"{add,set,get},message=$name($value)不合法"` Key string `json:"key,omitempty" valid:"/[A-Za-z0-9_\\-]+/,message=$name非法的Http Header Key"` Value string `json:"value,omitempty" vaild:"optional,message=$name非法的Http Header Value"` Pattern string `json:"pattern,omitempty" vaild:"optional,message=$name非法的pattern"` }
type HttpServer ¶
type HttpServer struct {
// contains filtered or unexported fields
}
func (*HttpServer) ServeHTTP ¶
func (this *HttpServer) ServeHTTP(w http.ResponseWriter, req *http.Request)
type Log ¶
type Log struct { File string `json:"file,omitempty" valid:"message=$name($value)不合法"` Fmt string `json:"fmt,omitempty" valid:"optional,message=$name($value)不合法"` RotateTime string `json:"rotate_time,omitempty" valid:"optional,{hour|day},message=$name($value)不合法"` RotateSize int64 `json:"rotate_size,omitempty" valid:"optional,(0,),message=$name($value)必须是正整数"` RotateNumber int `json:"rotate_number,omitempty" valid:"optional,(0,),message=$name($value)必须是正整数"` }
type Proxy ¶
type Proxy struct {
// contains filtered or unexported fields
}
Proxy 代理服务对象 根据当前配置,启动代理服务
type ProxyCheck ¶
type ProxyCheck struct {
// contains filtered or unexported fields
}
func NewProxyCheck ¶
func NewProxyCheck(index int, host string, check *Check) *ProxyCheck
type ProxyDomain ¶
type ProxyDomain struct {
// contains filtered or unexported fields
}
type ProxyHandle ¶
type ProxyHandle struct {
// contains filtered or unexported fields
}
func NewProxyHandle ¶
func NewProxyHandle(rule *Rule, services *ProxyServices, accessLogger, errorLogger, sysLogger *ProxyLogger) *ProxyHandle
type ProxyHandleFilter ¶
type ProxyHandleFilter struct {
// contains filtered or unexported fields
}
func NewProxyHandleFilter ¶
func NewProxyHandleFilter(filter *Filter) *ProxyHandleFilter
type ProxyHandleFilterHeader ¶
type ProxyHandleFilterHeader struct {
// contains filtered or unexported fields
}
func NewProxyHandleFilterHeader ¶
func NewProxyHandleFilterHeader(header *HeaderFilter) *ProxyHandleFilterHeader
type ProxyHandleFilterRequestURI ¶
type ProxyHandleFilterRequestURI struct {
// contains filtered or unexported fields
}
func NewProxyHandleFilterRequestURI ¶
func NewProxyHandleFilterRequestURI(value string) *ProxyHandleFilterRequestURI
type ProxyHandles ¶
type ProxyHandles struct {
// contains filtered or unexported fields
}
func NewProxyHandles ¶
func NewProxyHandles(logger *ProxyLogger) *ProxyHandles
func (*ProxyHandles) NewProxyDomain ¶
func (this *ProxyHandles) NewProxyDomain(app *App, domain *Domain, services *ProxyServices, logfmts *ProxyLogfmts, syslog *ProxyLogger) *ProxyDomain
type ProxyHeaderTransform ¶
type ProxyHeaderTransform struct {
// contains filtered or unexported fields
}
func NewProxyHeaderTransform ¶
func NewProxyHeaderTransform(headerTransform *HeaderTransform) *ProxyHeaderTransform
type ProxyLogfmts ¶
type ProxyLogfmts struct {
// contains filtered or unexported fields
}
func NewProxyLogfmts ¶
func NewProxyLogfmts(logfmts []*Logfmt) *ProxyLogfmts
type ProxyLogger ¶
type ProxyLogger struct {
// contains filtered or unexported fields
}
func NewProxyLogger ¶
func NewProxyLogger() *ProxyLogger
func (*ProxyLogger) Close ¶
func (this *ProxyLogger) Close()
func (*ProxyLogger) Error ¶
func (this *ProxyLogger) Error(msg ...interface{})
func (*ProxyLogger) Load ¶
func (this *ProxyLogger) Load(config *Log) (*ProxyLogger, error)
func (*ProxyLogger) LoadFmt ¶
func (this *ProxyLogger) LoadFmt(fmts *ProxyLogfmts) (*ProxyLogger, error)
func (*ProxyLogger) Log ¶
func (this *ProxyLogger) Log(msg ...interface{})
func (*ProxyLogger) Logfmt ¶
func (this *ProxyLogger) Logfmt(variables *ProxyVariable)
type ProxyService ¶
type ProxyService struct {
// contains filtered or unexported fields
}
func NewProxyService ¶
func NewProxyService(service *Service) *ProxyService
type ProxyServices ¶
type ProxyServices struct {
// contains filtered or unexported fields
}
func NewProxyServices ¶
func NewProxyServices(services []*Service) *ProxyServices
type ProxyTarget ¶
type ProxyTarget struct {
// contains filtered or unexported fields
}
func NewProxyTarget ¶
func NewProxyTarget(url string) *ProxyTarget
type ProxyVariable ¶
type ProxyVariable struct {
// contains filtered or unexported fields
}
func NewProxyVariable ¶
func NewProxyVariable() *ProxyVariable
func (*ProxyVariable) Set ¶
func (this *ProxyVariable) Set(key, value string)
type Transform ¶
type Transform struct {
Headers []*HeaderTransform `json:"headers,omitempty" valid:"optional,message_type=$name非法的header_transform对象"`
}
type VariableExpr ¶
type VariableExpr struct {
// contains filtered or unexported fields
}
func NewVariableExpr ¶
func NewVariableExpr(expr string) *VariableExpr
func (*VariableExpr) Load ¶
func (this *VariableExpr) Load(params *ProxyVariable) string
Click to show internal directories.
Click to hide internal directories.