Beego核心配置参数详解
应用基础配置
在构建API服务时,基础的App配置决定了应用的全局运行行为。以下是一个典型的配置文件片段:
# 应用基础参数设定
appname = MyApiService
runmode = prod
routercasesensitive = true
servername = CustomServer
recoverpanic = true
copyrequestbody = true
enablegzip = false
maxmemory = 1 << 26
enableerrorsshow = true
enableerrorsrender = false
- appname:项目标识名称,默认继承
bee new创建时的工程名。代码配置:cfg := beego.BConfig; cfg.AppName = "MyApiService" - runmode:运行模式,支持
dev、prod和test。开发模式下会输出详细日志,生产模式则自动屏蔽。代码配置:cfg.RunMode = "prod" - routercasesensitive:路由匹配是否区分大小写,默认为
true。代码配置:cfg.RouterCaseSensitive = true - servername:HTTP响应头中的Server字段值,默认为
beego。代码配置:cfg.ServerName = "CustomServer" - recoverpanic:异常恢复开关,默认
true,拦截Panic防止进程崩溃。代码配置:cfg.RecoverPanic = true - copyrequestbody:是否允许读取请求体原始字节,默认
true(GET/HEAD及文件上传除外)。代码配置:cfg.CopyRequestBody = true - enablegzip:Gzip压缩开关,默认
false。开启后根据客户端Accept-Encoding自动压缩响应体,可显著降低带宽占用。代码配置:cfg.EnableGzip = true- gzipCompressLevel:压缩级别(1-9),默认1(最快压缩)。
- gzipMinLength:触发压缩的最小内容长度阈值,默认20B。
- includedMethods:需要压缩的请求方法,默认仅
GET。
- maxmemory:文件上传内存缓存限制,默认
1 << 26(64MB)。代码配置:cfg.MaxMemory = 1 << 26 - enableerrorsshow:是否展示系统错误详情,默认
true。代码配置:cfg.EnableErrorsShow = true - enableerrorsrender:错误信息渲染开关,默认
true。API服务建议关闭以避免返回HTML错误页面。代码配置:cfg.EnableErrorsRender = false
Web服务与视图配置
针对Web层和模板渲染的相关设定,对于前后端分离的API项目,需要关闭部分默认的渲染功能:
# Web与视图设定
autorender = false
enabledocs = true
flashname = API_FLASH
flashseperator = APIFLASH
directoryindex = true
staticdir = swagger
staticextensionstogzip = .css, .js
templateleft = {{
templateright = }}
viewspath = views
enablexsrf = false
xsrfkey = custom_xsrf_key
xsrfexpire = 0
- autorender:模板自动渲染开关,默认
true。API服务需设为false。代码配置:cfg.WebConfig.AutoRender = false - enabledocs:内置文档功能,默认
false,集成Swagger时需开启。代码配置:cfg.WebConfig.EnableDocs = true - flashname:Flash数据的Cookie键名,默认
BEEGO_FLASH。代码配置:cfg.WebConfig.FlashName = "API_FLASH" - flashseperator:Flash数据分隔符,默认
BEEGOFLASH。代码配置:cfg.WebConfig.FlashSeperator = "APIFLASH" - directoryindex:静态目录列表展示,默认
false(返回403)。代码配置:cfg.WebConfig.DirectoryIndex = true - staticdir:静态文件映射目录,默认
static。支持多目录配置,如download:down。代码配置:cfg.WebConfig.StaticDir["/swagger"] = "swagger" - staticextensionstogzip:需要Gzip压缩的静态文件后缀,默认
.css,.js。代码配置:cfg.WebConfig.StaticExtensionsToGzip = []string{".css", ".js"} - templateleft / templateright:模板引擎界定符,默认
{{和}}。代码配置:cfg.WebConfig.TemplateLeft = "{{" - viewspath:模板文件存放路径,默认
views。代码配置:cfg.WebConfig.ViewsPath = "views" - enablexsrf:XSRF/CSRF防护开关,默认
false。代码配置:cfg.WebConfig.EnableXSRF = true - xsrfkey:XSRF加密密钥,默认
beegoxsrf。代码配置:cfg.WebConfig.XSRFKEY = "custom_xsrf_key" - xsrfexpire:XSRF Token过期时间,默认
0(不过期)。代码配置:cfg.WebConfig.XSRFExpire = 3600
网络监听配置
控制HTTP/HTTPS服务的启动参数及端口监听行为:
# 网络监听设定
graceful = true
servertimeout = 30
listentcp4 = tcp4
enablehttp = true
httpaddr = 127.0.0.1
httpport = 8080
enablehttps = true
httpsaddr =
httpsport = 10443
httpscertfile = conf/cert.pem
httpskeyfile = conf/key.pem
enableadmin = true
adminaddr = localhost
adminport = 8088
enablefcgi = false
enablestdio = false
- graceful:平滑重启(热升级)开关,默认
false。代码配置:cfg.Listen.Graceful = true - servertimeout:HTTP连接超时时间,默认
0(不超时)。代码配置:cfg.Listen.ServerTimeOut = 30 - listentcp4:网络协议类型,支持
tcp,tcp4,tcp6,unix等。代码配置:cfg.Listen.ListenTCP4 = "tcp4" - enablehttp:启用HTTP监听,默认
true。代码配置:cfg.Listen.EnableHTTP = true - httpaddr:监听绑定IP,默认空(绑定所有网卡)。代码配置:
cfg.Listen.HTTPAddr = "127.0.0.1" - httpport:HTTP监听端口,默认
8080。代码配置:cfg.Listen.HTTPPort = 8080 - enablehttps:启用HTTPS监听,默认
false。代码配置:cfg.Listen.EnableHTTPS = true - httpsaddr:HTTPS监听绑定IP。代码配置:
cfg.Listen.HTTPSAddr = "" - httpsport:HTTPS监听端口,默认
10443。代码配置:cfg.Listen.HTTPSPort = 10443 - httpscertfile:SSL证书文件路径。代码配置:
cfg.Listen.HTTPSCertFile = "conf/cert.pem" - httpskeyfile:SSL私钥文件路径。代码配置:
cfg.Listen.HTTPSKeyFile = "conf/key.pem" - enableadmin:开启进程内监控模块,默认
false。代码配置:cfg.Listen.EnableAdmin = true - adminaddr:监控模块监听IP,默认
localhost。代码配置:cfg.Listen.AdminAddr = "localhost" - adminport:监控模块监听端口,默认
8088。代码配置:cfg.Listen.AdminPort = 8088 - enablefcgi:启用FastCGI,默认
false。代码配置:cfg.Listen.EnableFcgi = false - enablestdio:FastCGI标准I/O模式,需在启用FastCGI后生效,默认
false。代码配置:cfg.Listen.EnableStdIo = false
会话管理配置
涉及Session生命周期、存储引擎及客户端Cookie的设定:
# 会话管理设定
sessionon = true
sessionprovider = redis
sessionname = mysessionid
sessiongcmaxlifetime = 7200
sessioncookelifetime = 3600
sessionautosetcookie = true
sessiondomain = .example.com
- sessionon:Session全局开关,默认
false。代码配置:cfg.WebConfig.Session.SessionOn = true - sessionprovider:Session存储引擎,默认
memory。代码配置:cfg.WebConfig.Session.SessionProvider = "redis" - sessionname:客户端Cookie中的Session键名,默认
beegosessionID。代码配置:cfg.WebConfig.Session.SessionName = "mysessionid" - sessiongcmaxlifetime:服务端Session过期时间(秒),默认
3600。代码配置:cfg.WebConfig.Session.SessionGCMaxLifetime = 7200 - sessionproviderconfig:对应引擎的专属配置信息,根据所选引擎按需填写。
- sessioncookelifetime:客户端Cookie有效时长(秒),默认
3600。代码配置:cfg.WebConfig.Session.SessionCookieLifeTime = 3600 - sessionautosetcookie:是否自动设置Cookie,默认
true。代码配置:cfg.WebConfig.Session.SessionAutoSetCookie = true - sessiondomain:Cookie作用域,默认为空。代码配置:
cfg.WebConfig.Session.SessionDomain = ".example.com"
日志系统配置
日志相关配置项不支持通过配置文件设定,必须在代码中动态修改:
- AccessLogs:访问日志输出开关,默认
false。代码配置:cfg.Log.AccessLogs = true - FileLineNum:日志中是否记录源码文件名与行号,默认
true。代码配置:cfg.Log.FileLineNum = true - Outputs:日志输出目标扩展,支持
console、file等适配器。代码配置:cfg.Log.Outputs["console"] = ""