summaryrefslogtreecommitdiff
path: root/.rr.yaml
blob: ca638aa91e7078e3527377f2444300895883233e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
rpc:
  listen: tcp://127.0.0.1:6001

server:
  command: "php tests/psr-worker-bench.php"
  user: ""
  group: ""
  env:
    "RR_HTTP": "true"
    "RR_RPC": "tcp://127.0.0.1:6001"
  relay: "pipes"
  relay_timeout: "20s"

logs:
  mode: development
  level: debug

http:
  address: 127.0.0.1:44933
  max_request_size: 1024
  middleware: [ "gzip", "headers" ]
  uploads:
    forbid: [ ".php", ".exe", ".bat" ]
  trusted_subnets:
    [
        "10.0.0.0/8",
        "127.0.0.0/8",
        "172.16.0.0/12",
        "192.168.0.0/16",
        "::1/128",
        "fc00::/7",
        "fe80::/10",
    ]
  headers:
    cors:
      allowed_origin: "*"
      allowed_headers: "*"
      allowed_methods: "GET,POST,PUT,DELETE"
      allow_credentials: true
      exposed_headers: "Cache-Control,Content-Language,Content-Type,Expires,Last-Modified,Pragma"
      max_age: 600
    request:
      input: "custom-header"
    response:
      output: "output-header"

  static:
    dir: "tests"
    forbid: [ "" ]
    request:
      "input": "custom-header"
    response:
      "output": "output-header"

  pool:
    num_workers: 6
    max_jobs: 0
    allocate_timeout: 60s
    destroy_timeout: 60s
    supervisor:
      # WatchTick defines how often to check the state of worker (seconds)
      watch_tick: 1
      # TTL defines maximum time worker is allowed to live (seconds)
      ttl: 0
      # IdleTTL defines maximum duration worker can spend in idle mode. Disabled when 0 (seconds)
      idle_ttl: 10
      # ExecTTL defines maximum lifetime per job (seconds)
      exec_ttl: 10
      # MaxWorkerMemory limits memory per worker (MB)
      max_worker_memory: 100

  #  ssl:
  #    port: 8892
  #    redirect: false
  #    cert: fixtures/server.crt
  #    key: fixtures/server.key
  #    rootCa: root.crt
  fcgi:
    address: tcp://0.0.0.0:7921
  http2:
    h2c: false
    max_concurrent_streams: 128

redis:
  # UniversalClient is an abstract client which - based on the provided options -
  # can connect to either clusters, or sentinel-backed failover instances
  # or simple single-instance servers. This can be useful for testing
  # cluster-specific applications locally.
  # if the number of addrs is 1 and master_name is empty, a single-node redis Client will be returned

  # if the number of addrs is two or more, a ClusterClient will be returned
  addrs:
    - "localhost:6379"
  # if a MasterName is passed a sentinel-backed FailoverClient will be returned
  master_name: ""
  username: ""
  password: ""
  db: 0
  sentinel_password: ""
  route_by_latency: false
  route_randomly: false
  dial_timeout: 0 # accepted values [1s, 5m, 3h]
  max_retries: 1
  min_retry_backoff: 0 # accepted values [1s, 5m, 3h]
  max_retry_backoff: 0 # accepted values [1s, 5m, 3h]
  pool_size: 0
  min_idle_conns: 0
  max_conn_age: 0 # accepted values [1s, 5m, 3h]
  read_timeout: 0 # accepted values [1s, 5m, 3h]
  write_timeout: 0 # accepted values [1s, 5m, 3h]
  pool_timeout: 0 # accepted values [1s, 5m, 3h]
  idle_timeout: 0 # accepted values [1s, 5m, 3h]
  idle_check_freq: 0 # accepted values [1s, 5m, 3h]
  read_only: false

# boltdb simple driver
boltdb:
  dir: "."
  file: "rr"
  bucket: "test"
  permissions: 0777
  # keys ttl check interval
  TTL: 60 # seconds

  # memcached driver
memcached:
  addr:
    - "localhost:11211"

# in memory KV driver
memory:
  # keys ttl check interval
  interval: 60

metrics:
  # prometheus client address (path /metrics added automatically)
  address: localhost:2112
  collect:
    app_metric:
      type: histogram
      help: "Custom application metric"
      labels: [ "type" ]
      buckets: [ 0.1, 0.2, 0.3, 1.0 ]
      # objectives defines the quantile rank estimates with their respective
      #	absolute error [ for summary only ]
      objectives:
        - 1.4: 2.3
        - 2.0: 1.4

reload:
  # sync interval
  interval: 1s
  # global patterns to sync
  patterns: [ ".go" ]
  # list of included for sync services
  services:
    http:
      # recursive search for file patterns to add
      recursive: true
      # ignored folders
      ignore: [ "vendor" ]
      # service specific file pattens to sync
      patterns: [ ".php", ".go", ".md" ]
      # directories to sync. If recursive is set to true,
      # recursive sync will be applied only to the directories in `dirs` section
      dirs: [ "." ]