Go 之 Beego 配置文件

ops/2025/2/24 14:47:49/

        beego 目前支持 INI、XML、JSON、YAML 格式的配置文件解析,但是默认采用了 INI 格式解析。而配置文件的内容又包含 App配置、Web配置、监听配置、Session配置、Log配置。

        配置信息结构体代码

一、App配置

参数类型默认值说明内容

AppName

string

"beego"

应用名称

RunMode

string

"dev"

应用运行模式:
dev - 开发模式,提供详细的日志输出和热重载功能
test - 测试模式,减少不必要的日志输出和内存占用
prod - 生产模式,优化性能并启用安全性相关的配置

RouterCaseSensitive

bool

true

路由是否区分大小写。如果设置为 true,路由将严格区分大小写

ServerName

string

"beego"

服务器名称,通常用于 HTTP 响应头中的 Server 字段

RecoverPanic

bool

true

是否启用 panic 恢复机制。如果设置为 true,在发生 panic 时会尝试恢复。

RecoverFunc

func(*context.Context)

nil

自定义的 panic 恢复函数,在发生 panic 时调用。

CopyRequestBody

bool

false

是否复制请求体。如果设置为 true,请求体将被复制以便后续处理。(GET or HEAD or 上传文件请求除外)

EnableGzipboolfalse是否启用 Gzip 压缩。如果设置为 true,响应内容会被压缩以减少传输数据量。
MaxMemoryint641<<24 (64M)文件上传时允许的最大内存使用量(字节)
EnableErrorsShowbooltrue是否在控制台显示错误信息。
EnableErrorsRenderbooltrue是否渲染错误页面。如果设置为 false,则不会渲染自定义的错误页面。
ListenListen{}监听配置,包含监听地址、端口等信息。
WebConfigWebConfig{}Web 配置,包含视图引擎、静态文件目录等信息。
LogLogConfig{}日志配置,包含日志级别、日志文件路径等信息。

二、监听配置

名称

类型

默认值

说明内容

Graceful

bool

false

是否开启热升级。如果设置为 true,服务器将在重启时平滑过渡。

ServerTimeOut

int64

0

服务器超时时间(秒)。设置为 0 表示无超时限制。

ListenTCP4

bool

false

是否监听 TCP4 地址。如果设置为 true,服务器将仅监听 IPv4 地址。

EnableHTTP

bool

true

是否启用 HTTP 监听服务。

HTTPAddr

string

"0.0.0.0"

HTTP 服务监听的地址。默认监听所有可用的网络接口。

HTTPPort

int

8080

HTTP 服务监听的端口。

AutoTLS

bool

false

是否自动启用 TLS。如果设置为 true,Beego 将尝试自动获取和管理 TLS 证书。

Domains

[]string

[]

自动 TLS 的域名列表。

TLSCacheDir

string

""

TLS 证书缓存目录。

EnableHTTPS

bool

false

是否启用 HTTPS 服务。

EnableMutualHTTPS

bool

false

是否启用双向 HTTPS 认证(客户端也需要提供证书)。

HTTPSAddr

string

"0.0.0.0"

HTTPS 服务监听的地址。默认监听所有可用的网络接口。

HTTPSPort

int

8081

HTTPS 服务监听的端口。

HTTPSCertFile

string

""

HTTPS 服务使用的证书文件路径。

HTTPSKeyFile

string

""

HTTPS 服务使用的私钥文件路径。

TrustCaFile

string

""

双向 HTTPS 认证所需的 CA 证书文件路径。

ClientAuth

tls.ClientAuthType

tls.NoClientCert

客户端认证类型。默认不需要客户端证书。

EnableAdmin

bool

false

是否启用管理端口,进程内监控模块

AdminAddr

string

"0.0.0.0"

管理端口监听的地址。默认监听所有可用的网络接口。

AdminPort

int

8088

管理端口监听的端口。

EnableFcgi

bool

false

是否启用 FastCGI 支持。

EnableStdIo

bool

false

是否启用标准 I/O 模式下的 FastCGI。需要与 EnableFcgi 一起使用。

三、Web配置

名称类型默认值说明内容
AutoRenderbooltrue是否自动渲染模板。如果设置为 false,需要手动调用渲染函数。
EnableDocsboolfalse是否启用内置文档服务。
FlashNamestring"BEEGO_FLASH" Flash 消息存储在 Cookie 中的键名。
FlashSeparatorstring"BEEGOFLASH" Flash 消息中的分隔符。
DirectoryIndexboolfalse是否启用目录索引。如果设置为 true,当访问一个目录时会显示目录列表。默认不显示目录,返回 403 错误。
StaticDirmap[string]stringmap[string]string{"/static": "static"}静态文件目录映射。键是 URL 路径前缀,值是本地文件系统路径。
StaticExtensionsToGzip[]string[]string{".css", ".js", ".json", ".svg"}需要 Gzip 压缩的静态文件扩展名列表。
StaticCacheFileSizeint10240 (10KB)静态文件缓存的最大文件大小(字节)。
StaticCacheFileNumint100静态文件缓存的最大文件数量。
TemplateLeftstring"{{"模板左定界符。
TemplateRightstring"}}"模板右定界符。
ViewsPathstring"views"视图模板文件所在的目录路径。
EnableXSRFboolfalse是否启用 XSRF(跨站请求伪造)保护。
XSRFKeystring"beegoxsrf"XSRF Token 的密钥。
XSRFExpireint0 (秒)XSRF Token 的过期时间(秒)。
SessionSessionConfig{}会话配置。

四、会话配置

名称类型默认值说明内容
SessionOnboolfalse是否启用会话管理。
SessionProviderstring"memory"会话存储提供者(如 filememoryredis 等)。
SessionNamestring"beegosessionID"存储会话 ID 的 Cookie 名称。
SessionGCMaxLifetimeint643600 (秒)会话的最大生存时间(秒),即垃圾回收的最大生命周期。
SessionProviderConfigstring""提供者的配置路径或连接字符串(例如文件路径、Redis 连接字符串等)。
SessionCookieLifeTimeint3600(秒)Cookie 的生存时间(秒)。设置为 0 表示浏览器关闭时删除 Cookie。
SessionAutoSetCookiebooltrue是否自动设置会话 Cookie。
SessionDomainstring""Cookie 的域名。如果不设置,则使用请求的域名。
SessionDisableHTTPOnlyboolfalse是否禁用 HTTP Only 标志,允许跨域 JavaScript 访问 Cookie。
SessionEnableSidInHTTPHeaderboolfalse是否启用通过 HTTP 头部存储/获取会话 ID。
SessionNameInHTTPHeaderstring"X-Session-ID"如果启用了 SessionEnableSidInHTTPHeader,则指定 HTTP 头部的名称。
SessionEnableSidInURLQueryboolfalse是否启用从 URL 查询参数中获取会话 ID。
SessionCookieSameSitehttp.SameSitehttp.SameSiteDefaultModeCookie 的 SameSite 属性,默认为 DefaultMode

五、日志配置

名称类型默认值说明内容
AccessLogsboolfalse是否启用访问日志记录。
EnableStaticLogsboolfalse是否启用静态文件请求的日志记录,默认为 false
AccessLogsFormatstring"" (空字符串)访问日志格式:JSON_FORMAT 或 APACHE_FORMAT,或留空使用默认格式。
FileLineNumbooltrue是否在日志中包含文件名和行号。
Outputsmap[string]string{} (空映射)日志输出适配器及其配置。键是适配器名称,值是对应的配置字符串。

六、配置示例

# 基本配置
AppName = MyBeegoApp
RunMode = dev
RouterCaseSensitive = true
ServerName = BeegoServer/1.0
RecoverPanic = true
CopyRequestBody = true
EnableGzip = true
MaxMemory = 10485760 # 10MB
EnableErrorsShow = true
EnableErrorsRender = true# Web 配置 
AutoRender = true
EnableDocs = false
FlashName = BEEGO_FLASH
FlashSeparator = BEEGOFLASH
DirectoryIndex = false
StaticDir = /static=static
StaticExtensionsToGzip = .css, .js, .json, .svg
StaticCacheFileSize = 10240
StaticCacheFileNum = 100
TemplateLeft = {{
TemplateRight = }}
ViewsPath = views
EnableXSRF = false
XSRFKey = beegoxsrftokenkey
XSRFExpire = 3600# 会话配置 
SessionOn = true
SessionProvider = file
SessionName = beegosessionID
SessionGCMaxLifetime = 3600
SessionProviderConfig = ./tmp/sessions
SessionCookieLifeTime = 0
SessionAutoSetCookie = true
SessionDomain =
SessionDisableHTTPOnly = false
SessionEnableSidInHTTPHeader = false
SessionNameInHTTPHeader = X-Session-ID
SessionEnableSidInURLQuery = false
SessionCookieSameSite = DefaultMode# 监听配置 
Graceful = false
ServerTimeOut = 30
ListenTCP4 = true
EnableHTTP = true
HTTPAddr = 0.0.0.0
HTTPPort = 8080
AutoTLS = false
Domains = example.com, www.example.com
TLSCacheDir = /path/to/tls/cache
EnableHTTPS = true
EnableMutualHTTPS = false
HTTPSAddr = 0.0.0.0
HTTPSPort = 8443
HTTPSCertFile = /path/to/cert.pem
HTTPSKeyFile = /path/to/key.pem
TrustCaFile = /path/to/ca.pem
ClientAuth = NoClientCert
EnableAdmin = false
AdminAddr = 0.0.0.0
AdminPort = 8088
EnableFcgi = false
EnableStdIo = false# 日志配置 
AccessLogs = true
EnableStaticLogs = false
AccessLogsFormat = APACHE_FORMAT
FileLineNum = true
Outputs = console: {"color": true}
Outputs = file: {"filename": "logs/beego.log"}

七、说明


        有些资料显示有些配置在 app.conf 配了也不能生效,需要硬编码才行,还没有去验证,不确定说法对不对,就没有备注出来,后续生产过程中碰到了再追加说明。


http://www.ppmy.cn/ops/160996.html

相关文章

[oAuth2授权]Web前端+NodeCoze API Web后端程序+Coze授权服务器工作流程架构流程图详解

嗯,用户之前已经了解了如何使用React和Node.js结合Coze API实现OAuth2授权,现在他们具体想实现的是在Web应用中,当用户点击一个按钮(比如“和Bot对话”)时,触发授权流程,重定向到Coze的授权服务器获取code。用户还提供了一个具体的cURL请求示例,展示了如何通过302重定向…

如何将公钥正确添加到服务器的 authorized_keys 文件中以实现免密码 SSH 登录

1. 下载密钥文件 2. RSA 解析 将 id_ed25519 类型的私钥转换为 RSA 类型&#xff0c;要将 ED25519 私钥转换为 RSA 私钥&#xff0c;需要重新生成一个新的 RSA 密钥对。 步骤&#xff1a; 生成新的 RSA 密钥对 使用 ssh-keygen 来生成一个新的 RSA 密钥对。比如&#xff0c;执…

2025高维多目标优化:基于导航变量的多目标粒子群优化算法(NMOPSO)的无人机三维路径规划,MATLAB代码

一、NMOPSO介绍 基于导航变量的多目标粒子群优化算法&#xff08;Navigation Variable-based Multi-Objective Particle Swarm Optimization, NMOPSO&#xff09;是一种专门用于无人机三维路径规划的先进算法。该算法通过将路径规划问题建模为一个多目标优化问题&#xff0c;并…

docker下安装 es 设置账号密码

环境 ElasticSearch版本&#xff1a;7.6.2 步骤 使用docker命令进入es容器 修改es的配置文件&#xff1a;elasticsearch.yml&#xff0c;添加如下配置 xpack.security.enabled: true xpack.license.self_generated.type: basic xpack.security.transport.ssl.enabled: tru…

2025年02月21日Github流行趋势

项目名称&#xff1a;source-sdk-2013 项目地址url&#xff1a;https://github.com/ValveSoftware/source-sdk-2013项目语言&#xff1a;C历史star数&#xff1a;7343今日star数&#xff1a;929项目维护者&#xff1a;JoeLudwig, jorgenpt, narendraumate, sortie, alanedwarde…

ArcGIS Pro制作人口三维地图教程

数据可视化是现代数据分析领域的一项重要技术&#xff0c;它通过图表、地图等视觉形式将数据转化为易于理解的信息&#xff0c;使得人们能够更直观地把握数据的内涵与趋势。 在众多可视化手段中&#xff0c;三维地图因其能够展现数据在空间中的立体分布而备受青睐。 本文将详…

【框架】参考 Spring Security 安全框架设计出,轻量化高可扩展的身份认证与授权架构

关键字&#xff1a;AOP、JWT、自定义注解、责任链模式 一、Spring Security Spring Security 想必大家并不陌生&#xff0c;是 Spring 家族里的一个安全框架&#xff0c;特别完善&#xff0c;但学习成本比较大&#xff0c;不少开发者都觉得&#xff0c;这个框架“很重” 他的…

虚幻5 UI/HUD界面如何设置、播放动画

点击动画会出现蓝色的框 设置完成后编译然后打开图表