教程 pingora tutorial

自定义配置

Pingora 提供灵活的配置系统,支持用户根据业务需求自定义代理行为、上游策略和服务特性。

配置文件结构

Pingora 配置文件通常为 YAML 格式:

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"

`

配置要点

  1. 服务器参数

    • listen:监听地址与端口
    • workers:工作线程数量
  2. 上游代理(Peer)

    • 多上游服务器支持负载均衡
    • max_connections 控制连接池大小
    • retry_policy 设置失败重试策略
  3. 日志系统

    • 支持不同等级(debug, info, warn, error)
    • 可输出到控制台或文件
  4. 限速器

    • 控制请求速率,防止服务过载
    • requests_per_second 和 burst 可自定义
  5. TLS 配置

    • 启用 HTTPS
    • 指定证书与私钥路径
    • 可设置最小/最大 TLS 版本

动态加载与热更新

  • Pingora 支持在运行时重新加载部分配置
  • 可通过信号或管理接口触发热更新,减少服务中断

自定义扩展

  • 过滤器与中间件可以通过配置启用或禁用
  • 支持根据不同环境加载不同配置文件
  • 可扩展插件实现自定义代理策略或监控指标

通过自定义配置,Pingora 可以灵活适配不同业务场景,实现高性能、可扩展和安全的代理服务。