配置文件
Pingora 使用灵活的配置系统来控制服务器行为、代理规则和运行参数。
配置文件通常采用 YAML 格式,既简洁又易读。
配置文件位置
默认情况下,Pingora 会在以下路径查找配置文件:
/etc/pingora/config.yaml
`
你也可以通过命令行参数指定配置路径:
pingora --config /path/to/config.yaml
基本配置示例
下面是一个最小可用的 Pingora 配置文件示例:
server:
listen: "0.0.0.0:8080"
workers: 4
reuse_port: true
proxy:
upstreams:
- name: backend
servers:
- "127.0.0.1:8000"
logging:
level: info
file: /var/log/pingora.log
核心配置项说明
1. server 部分
定义服务器运行方式和网络监听行为。
| 参数 | 类型 | 示例 | 说明 |
|---|---|---|---|
listen |
字符串 | "0.0.0.0:8080" |
指定监听地址与端口 |
workers |
数字 | 4 |
启动的工作进程数量 |
reuse_port |
布尔 | true |
是否启用 SO_REUSEPORT 优化端口复用 |
2. proxy 部分
定义代理转发规则与上游服务。
| 参数 | 类型 | 示例 | 说明 |
|---|---|---|---|
upstreams |
数组 | — | 定义上游服务器集群 |
name |
字符串 | "backend" |
上游名称 |
servers |
数组 | ["127.0.0.1:8000"] |
上游服务地址 |
3. logging 部分
控制日志输出位置与级别。
| 参数 | 类型 | 示例 | 说明 |
|---|---|---|---|
level |
字符串 | "info" |
日志级别,可选 debug、info、warn、error |
file |
字符串 | /var/log/pingora.log |
日志文件路径 |
4. metrics(可选)
启用 Prometheus 监控导出。
metrics:
enable: true
listen: "127.0.0.1:9090"
5. tls(可选)
配置 HTTPS 支持(基于 BoringSSL)。
tls:
cert: /etc/ssl/certs/server.crt
key: /etc/ssl/private/server.key
验证配置文件
运行以下命令检查配置是否正确:
pingora --check-config /etc/pingora/config.yaml
如无错误,命令会输出:
Configuration OK
提示与最佳实践
- 使用 环境变量 替换敏感配置,如密钥或上游地址;
- 将日志与 PID 文件路径写入
/var/run或/var/log; - 若部署多实例,建议区分配置文件路径;
- 对性能关键配置(如 worker 数)进行逐步调整测试。
Pingora 的配置系统非常灵活,支持从简单的反向代理到复杂的多层代理拓扑。掌握配置语法后,你可以轻松构建高性能、可维护的代理服务。
相关内容
- 高级主题 (WIP) 探索 Pingora 的高级特性,包括内部机制、异步运行时、线程模型和自定义扩展。
- 后台服务 学习如何在 Pingora 中配置和运行后台服务,包括定时任务、异步执行和守护进程管理。
- 异步上下文中的阻塞代码 学习如何在 Pingora 异步运行时中处理阻塞代码,确保高并发请求环境下的性能和稳定性。
- 构建 HTTP 代理 学习如何使用 Pingora 构建 HTTP 代理服务,包括基本请求转发、上游配置和自定义过滤器。
- 连接池与复用 学习如何在 Pingora 中使用连接池和连接复用,提高代理服务的性能和资源利用率。
- 守护进程 学习如何将 Pingora 以守护进程方式运行,确保服务在后台持续运行,并与系统管理工具集成。