配置管理对象

https://godoc.org/github.com/gogf/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. TLSConfig tls.Config
  14. // 静态文件配置
  15. IndexFiles []string // 默认访问的文件列表
  16. IndexFolder bool // 如果访问目录是否显示目录列表
  17. ServerAgent string // Server Agent
  18. ServerRoot string // 服务器服务的本地目录根路径(检索优先级比StaticPaths低)
  19. SearchPaths []string // 静态文件搜索目录(包含ServerRoot,按照优先级进行排序)
  20. StaticPaths []staticPathItem // 静态文件目录映射(按照优先级进行排序)
  21. FileServerEnabled bool // 是否允许静态文件服务(通过静态文件服务方法调用自动识别)
  22. // COOKIE
  23. CookieMaxAge int // Cookie有效期
  24. CookiePath string // Cookie有效Path(注意同时也会影响SessionID)
  25. CookieDomain string // Cookie有效Domain(注意同时也会影响SessionID)
  26. // SESSION
  27. SessionMaxAge int // Session有效期
  28. SessionIdName string // SessionId名称
  29. // IP访问控制
  30. DenyIps []string // 不允许访问的ip列表,支持ip前缀过滤,如: 10 将不允许10开头的ip访问
  31. AllowIps []string // 仅允许访问的ip列表,支持ip前缀过滤,如: 10 将仅允许10开头的ip访问
  32. // 路由访问控制
  33. DenyRoutes []string // 不允许访问的路由规则列表
  34. Rewrites map[string]string // URI Rewrite重写配置
  35. // 日志配置
  36. LogPath string // 存放日志的目录路径(默认为空,表示不写文件)
  37. LogHandler LogHandler // 自定义日志处理回调方法(默认为空)
  38. LogStdPrint bool // 是否打印日志到终端(默认开启)
  39. ErrorLogEnabled bool // 是否开启error log(默认开启)
  40. AccessLogEnabled bool // 是否开启access log(默认关闭)
  41. // 其他设置
  42. NameToUriType int // 服务注册时对象和方法名称转换为URI时的规则
  43. GzipContentTypes []string // 允许进行gzip压缩的文件类型
  44. DumpRouteMap bool // 是否在程序启动时默认打印路由表信息
  45. RouterCacheExpire int // 路由检索缓存过期时间(秒)
  46. }

配置管理方法

https://godoc.org/github.com/gogf/gf/g/net/ghttp#Server

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

常用配置介绍

关闭路由表打印

在WebServer启动的时候默认会打印出当前注册的所有路由信息(包括HOOK注册),这对于开发者来说非常有用。如果不想启动时打印路由表信息,可以通过以下方式关闭:

  1. g.Server().SetDumpRouteMap(false)

此外,我们也可以通过以下方式获取路由表信息(不自动打印),随后我们可以自定义处理:

  1. routes := g.Server().GetRouteMap()