自定义配置
Pingora 提供灵活的配置系统,支持用户根据业务需求自定义代理行为、上游策略和服务特性。
配置文件结构
Pingora 配置文件通常为 YAML 格式:
server:
listen: "0.0.0.0:8080"
workers: 4
proxy:
upstreams:
- name: backend
servers:
- "127.0.0.1:8000"
- "127.0.0.1:8001"
max_connections: 50
retry_policy:
retries: 3
backoff: 100ms
logging:
level: info
output: stdout
ratelimiter:
enable: true
requests_per_second: 100
burst: 20
tls:
enable: true
cert: "/etc/ssl/certs/server.crt"
key: "/etc/ssl/private/server.key"
`
配置要点
-
服务器参数
listen:监听地址与端口workers:工作线程数量
-
上游代理(Peer)
- 多上游服务器支持负载均衡
max_connections控制连接池大小retry_policy设置失败重试策略
-
日志系统
- 支持不同等级(debug, info, warn, error)
- 可输出到控制台或文件
-
限速器
- 控制请求速率,防止服务过载
requests_per_second和burst可自定义
-
TLS 配置
- 启用 HTTPS
- 指定证书与私钥路径
- 可设置最小/最大 TLS 版本
动态加载与热更新
- Pingora 支持在运行时重新加载部分配置
- 可通过信号或管理接口触发热更新,减少服务中断
自定义扩展
- 过滤器与中间件可以通过配置启用或禁用
- 支持根据不同环境加载不同配置文件
- 可扩展插件实现自定义代理策略或监控指标
通过自定义配置,Pingora 可以灵活适配不同业务场景,实现高性能、可扩展和安全的代理服务。
相关内容
- 高级主题 (WIP) 探索 Pingora 的高级特性,包括内部机制、异步运行时、线程模型和自定义扩展。
- 后台服务 学习如何在 Pingora 中配置和运行后台服务,包括定时任务、异步执行和守护进程管理。
- 异步上下文中的阻塞代码 学习如何在 Pingora 异步运行时中处理阻塞代码,确保高并发请求环境下的性能和稳定性。
- 构建 HTTP 代理 学习如何使用 Pingora 构建 HTTP 代理服务,包括基本请求转发、上游配置和自定义过滤器。
- 配置文件 了解 Pingora 的配置文件结构、主要参数及其作用,学习如何为不同场景编写高效、清晰的配置。
- 连接池与复用 学习如何在 Pingora 中使用连接池和连接复用,提高代理服务的性能和资源利用率。