Web Server配置管理

配置管理对象

godoc.org/github.com/johng-cn/gf/g/net/ghttp#ServerConfig

  1. // HTTP Server 设置结构体,静态配置
  2. type ServerConfig struct {
  3. // 底层http对象配置
  4. Addr string // 监听IP和端口,监听本地所有IP使用":端口"(支持多个地址,使用","号分隔)
  5. HTTPSAddr string // HTTPS服务监听地址(支持多个地址,使用","号分隔)
  6. HTTPSCertPath string // HTTPS证书文件路径
  7. HTTPSKeyPath string // HTTPS签名文件路径
  8. Handler http.Handler // 默认的处理函数
  9. ReadTimeout time.Duration // 读取超时
  10. WriteTimeout time.Duration // 写入超时
  11. IdleTimeout time.Duration // 等待超时
  12. MaxHeaderBytes int // 最大的header长度
  13. // 静态文件配置
  14. IndexFiles []string // 默认访问的文件列表
  15. IndexFolder bool // 如果访问目录是否显示目录列表
  16. ServerAgent string // server agent
  17. ServerRoot string // 服务器服务的本地目录根路径
  18. // COOKIE
  19. CookieMaxAge int // Cookie有效期
  20. CookiePath string // Cookie有效Path(注意同时也会影响SessionID)
  21. CookieDomain string // Cookie有效Domain(注意同时也会影响SessionID)
  22. // SESSION
  23. SessionMaxAge int // Session有效期
  24. SessionIdName string // SessionId名称
  25. // ip访问控制
  26. DenyIps []string // 不允许访问的ip列表,支持ip前缀过滤,如: 10 将不允许10开头的ip访问
  27. AllowIps []string // 仅允许访问的ip列表,支持ip前缀过滤,如: 10 将仅允许10开头的ip访问
  28. // 路由访问控制
  29. DenyRoutes []string // 不允许访问的路由规则列表
  30. // 日志配置
  31. LogPath string // 存放日志的目录路径
  32. LogHandler LogHandler // 自定义日志处理回调方法
  33. ErrorLogEnabled bool // 是否开启error log
  34. AccessLogEnabled bool // 是否开启access log
  35. // 其他设置
  36. NameToUriType int // 服务注册时对象和方法名称转换为URI时的规则
  37. GzipContentTypes []string // 允许进行gzip压缩的文件类型
  38. DumpRouteMap bool // 是否在程序启动时默认打印路由表信息
  39. }

配置管理方法

godoc.org/github.com/johng-cn/gf/g/net/ghttp#Server

  1. func (s *Server) AddSearchPath(path string) error
  2. func (s *Server) DumpRoutesMap()
  3. func (s *Server) EnableAdmin(pattern ...string)
  4. func (s *Server) EnableHTTPS(certFile, keyFile string)
  5. func (s *Server) EnablePprof(pattern ...string)
  6. func (s *Server) GetCookieDomain() string
  7. func (s *Server) GetCookieMaxAge() int
  8. func (s *Server) GetCookiePath() string
  9. func (s *Server) GetLogHandler() LogHandler
  10. func (s *Server) GetLogPath() string
  11. func (s *Server) GetName() string
  12. func (s *Server) GetRouteMap() string
  13. func (s *Server) GetSessionIdName() string
  14. func (s *Server) GetSessionMaxAge() int
  15. func (s *Server) IsAccessLogEnabled() bool
  16. func (s *Server) IsErrorLogEnabled() bool
  17. func (s *Server) SetAccessLogEnabled(enabled bool)
  18. func (s *Server) SetAddr(addr string)
  19. func (s *Server) SetAllowIps(ips []string)
  20. func (s *Server) SetConfig(c ServerConfig)
  21. func (s *Server) SetCookieDomain(domain string)
  22. func (s *Server) SetCookieMaxAge(age int)
  23. func (s *Server) SetCookiePath(path string)
  24. func (s *Server) SetDenyIps(ips []string)
  25. func (s *Server) SetDenyRoutes(routes []string)
  26. func (s *Server) SetDumpRouteMap(enabled bool)
  27. func (s *Server) SetErrorLogEnabled(enabled bool)
  28. func (s *Server) SetGzipContentTypes(types []string)
  29. func (s *Server) SetHTTPSAddr(addr string)
  30. func (s *Server) SetHTTPSPort(port ...int)
  31. func (s *Server) SetIdleTimeout(t time.Duration)
  32. func (s *Server) SetIndexFiles(index []string)
  33. func (s *Server) SetIndexFolder(index bool)
  34. func (s *Server) SetLogHandler(handler LogHandler)
  35. func (s *Server) SetLogPath(path string)
  36. func (s *Server) SetMaxHeaderBytes(b int)
  37. func (s *Server) SetNameToUriType(t int)
  38. func (s *Server) SetPort(port ...int)
  39. func (s *Server) SetReadTimeout(t time.Duration)
  40. func (s *Server) SetServerAgent(agent string)
  41. func (s *Server) SetServerRoot(root string)
  42. func (s *Server) SetSessionIdName(name string)
  43. func (s *Server) SetSessionMaxAge(age int)
  44. func (s *Server) SetWriteTimeout(t time.Duration)
  45. func (s *Server) Status() int

Web Server的配置比较丰富,所有的配置均可在创建ghttp.Server对象后使用SetConfig方法进行统一配置;也可以使用Server对象的Set*/Enable*方法进行特定配置的设置。主要注意的是,配置项在Server执行Start之后便不能再修改。