Files
kami_gateway/.qoder/repowiki/zh/content/部署与配置/配置文件详解.md
danial ea089b7be8 docs(wiki): 更新API参考文档格式与内容
- 优化API参考文档的段落排版和表格对齐
- 补充签名机制和支付接口的详细说明- 完善错误码与解决方案的描述
- 统一文档中的代码引用和示例格式

docs(beego):优化Beego框架集成文档结构

- 改进Beego框架文档的换行和段落布局
- 完善控制器继承和中间件集成的说明
- 优化ORM模型注册和路由机制的描述- 统一文档中的技术术语表达方式

docs(docker): 改进Docker部署指南文档格式

- 优化Dockerfile多阶段构建的描述
- 完善docker-compose配置文件说明
- 改进本地部署步骤和故障排除指南- 统一文档中的命令行示例格式feat(supplier): 新增LianIns卡发送任务类型- 在枚举中添加SendCardTaskTypeEnumLianIns类型
- 更新GetAllSendCardTaskType函数返回值
- 实现LianIns任务类型的工厂方法

chore(deps): 更新项目依赖版本

- 升级github.com/bytedance/sonic至v1.14.2
- 升级github.com/duke-git/lancet/v2至v2.3.8
- 升级github.com/bytedance/sonic/loader至v0.4.0
- 移除natefinch/lumberjack和yaml.v2依赖- 清理间接依赖中的toml库引用
2025-11-04 16:04:08 +08:00

8.7 KiB
Raw Blame History

配置文件详解

**Referenced Files in This Document** - [app.conf](file://conf/app.conf) - [config.go](file://internal/config/config.go) - [proxy.go](file://internal/config/proxy.go) - [proxy_pool.go](file://internal/utils/proxy_pool.go) - [config.go](file://internal/proxy/config.go)

目录

  1. 应用配置
  2. HTTP端口配置
  3. 日志配置
  4. 数据库配置
  5. Redis配置
  6. 消息队列配置
  7. 第三方服务API配置
  8. 代理配置
  9. 环境变量与配置文件的协同
  10. 生产与测试环境对比

应用配置

app.conf配置文件中的[appname]区块定义了应用的基本信息,包括应用名称和运行模式。

appname = jhgateway
runmode = prod
  • appname:设置应用名称为jhgateway,该名称用于标识系统实例
  • runmode:设置运行模式为prod(生产环境),系统根据此模式加载相应的配置和行为

Section sources

HTTP端口配置

[httpport]区块配置了HTTP服务的监听端口和网络地址。

httpport = 12309
RemoteAddr = 0.0.0.0
RemotePort = 12309
HTTPAddr = 0.0.0.0
  • httpport设置HTTP服务监听端口为12309
  • RemoteAddrHTTPAddr:设置为0.0.0.0,表示监听所有网络接口
  • RemotePort:远程服务端口,与httpport保持一致

这些配置共同定义了应用的网络访问入口,客户端通过http://<服务器IP>:12309访问服务。

Section sources

日志配置

[logs]区块详细配置了系统的日志记录行为。

[logs]
level =7
filepath= ./logs/jhmerchant.log
separate="["emergency","alert","critical","error","warning","notice","info","debug"]"
maxdays=10
  • level日志级别设置为7对应DEBUG级别记录所有级别的日志信息
  • filepath:日志文件保存路径为./logs/jhmerchant.log
  • separate:配置需要分离记录的日志类型,包含从紧急到调试的所有级别
  • maxdays日志文件最大保存天数为10天超过此期限的日志将被自动清理

日志级别0-7分别对应

  • 0: emergency (紧急)
  • 1: alert (警报)
  • 2: critical (严重)
  • 3: error (错误)
  • 4: warning (警告)
  • 5: notice (通知)
  • 6: info (信息)
  • 7: debug (调试)

Section sources

数据库配置

[mysql]区块配置了MySQL数据库的连接参数。

[mysql]
dbhost = 127.0.0.1
dbport = 3306
dbuser = root
dbpasswd = Woaizixkie!123
dbbase = kami
debug = true
  • dbhost:数据库主机地址为127.0.0.1(本地)
  • dbport数据库端口为3306
  • dbuser:数据库用户名为root
  • dbpasswd:数据库密码为Woaizixkie!123
  • dbbase:连接的数据库名为kami
  • debug:启用调试模式,便于开发和问题排查

这些配置用于建立与MySQL数据库的连接支持系统数据的持久化存储。

Section sources

Redis配置

[redis]区块配置了Redis缓存服务的连接信息。

[redis]
host = 127.0.0.1:6379
db = 0
password = ""
  • hostRedis服务地址和端口为127.0.0.1:6379
  • db使用的Redis数据库编号为0
  • passwordRedis密码为空表示无需认证

Redis主要用于缓存频繁访问的数据提高系统性能和响应速度。

Section sources

消息队列配置

[mq]区块配置了消息队列服务的连接参数。

[mq]
host = 127.0.0.1
port = 61613
  • host:消息队列服务主机为127.0.0.1
  • port消息队列服务端口为61613

消息队列用于实现系统组件间的异步通信,提高系统的可扩展性和可靠性。

Section sources

第三方服务API配置

配置文件中包含了多个第三方服务的API端点和回调地址配置。

MF服务配置

[mf]
submit_card_url = http://test.shop.center.mf178.cn/userapi/card/submit_card
query_card_url = http://test.shop.center.mf178.cn/userapi/card/order_info

Apple卡服务配置

[appleCard]
submit_card_url = http://kami_backend:12401/api/cardInfo/appleCard/submit
query_card_url = http://kami_backend:12401/api/cardInfo/appleCard/query
notify_url = http://kami_gateway:12309/appleCard/notify

京东卡服务配置

[jdCard]
submit_card_url = http://kami_backend:12401/api/cardInfo/jdCard/submit
query_card_url = http://kami_backend:12401/cardInfo/jdCard/query
notify_url = http://kami_gateway:12309/jdCard/notify

其他服务配置

[tMallGame]
submit_card_url=http://test.shop.center.mf178.cn/recharge/tMallGame/order/submit
notify_url=http://test.shop.center.mf178.cn/api/recharge/tMallGame/order/notify
query_card_url=http://test.shop.center.mf178.cn/userapi/card/order_info

这些配置定义了与各个第三方服务交互的API端点包括

  • submit_card_url:提交卡密的接口地址
  • query_card_url:查询卡密状态的接口地址
  • notify_url:接收第三方服务回调通知的地址

Section sources

代理配置

[proxy]区块配置了代理服务的相关参数。

[proxy]
proxies = []
  • proxies:代理数组,当前为空,表示不使用静态代理列表

代理配置与环境变量proxyUrl协同工作用于获取动态代理IP实现请求的IP轮换避免被目标网站封禁。

Section sources

环境变量与配置文件的协同

系统通过环境变量与配置文件的协同工作来实现灵活的代理配置。internal/config/proxy.go文件中定义了代理信息的获取逻辑:

func GetProxyInfo() ProxyInfo {
	return ProxyInfo{
		Url:     env.Get("proxyUrl", "https://share.proxy.qg.net/get?key=7ASQH2BI&num=2&area=&isp=0&format=txt&seq=\\r\\n&distinct=false"),
		AuthKey: env.Get("proxyAuthKey", "7ASQH2BI"),
		AuthPwd: env.Get("proxyAuthPwd", "34D6652FE7B6"),
	}
}
  • proxyUrl代理服务API地址从环境变量获取若不存在则使用默认值
  • proxyAuthKeyproxyAuthPwd:代理认证密钥和密码,同样优先从环境变量获取

这种设计实现了配置的灵活性:

  1. 生产环境中通过环境变量设置敏感信息,避免硬编码在配置文件中
  2. 开发环境中使用默认值,简化配置
  3. 可以根据不同环境动态调整代理服务

代理系统的工作流程如下:

flowchart TD
A[请求开始] --> B{获取代理}
B --> C[检查缓存代理]
C --> |存在且有效| D[使用缓存代理]
C --> |不存在或失效| E[调用代理API]
E --> F[获取新代理IP]
F --> G[验证代理可用性]
G --> |可用| H[使用新代理]
G --> |不可用| I[重试获取]
H --> J[执行HTTP请求]
D --> J
J --> K[请求完成]

Diagram sources

Section sources

生产与测试环境对比

生产环境配置特点

runmode = prod
dbpasswd = Woaizixkie!123
proxyUrl = https://secure.proxy.enterprise.com/api
  • 使用生产数据库和密码
  • 启用生产模式,关闭调试信息
  • 使用企业级代理服务
  • 日志级别可能调整为较低级别如3-4减少日志量

测试环境配置特点

runmode = dev
dbpasswd = test123
proxyUrl = https://test.proxy.service.com/api
  • 使用测试数据库和简单密码
  • 启用开发模式,便于调试
  • 使用测试代理服务
  • 日志级别设置为7DEBUG记录详细信息

配置项对系统行为的影响

配置项 影响范围 生产环境建议 测试环境建议
runmode 系统行为模式 prod dev
level 日志详细程度 3-4 (error-warning) 7 (debug)
maxdays 存储空间占用 30-90天 7-14天
debug 性能与安全性 false true
proxyUrl 请求IP轮换 高质量代理服务 测试代理服务

通过合理配置这些参数,可以确保系统在不同环境中以最优方式运行,既保证生产环境的稳定性和安全性,又满足测试环境的调试需求。

Section sources