docker-compose-configs/invidious/invidious-all/haproxy.cfg

78 lines
2.3 KiB
INI

# Notes:
# Why I deleted `balance roundrobin`:
#
# https://www.haproxy.com/documentation/haproxy-configuration-manual/latest/#4-balance:
# The load balancing algorithm of a backend is set to roundrobin when no other
# algorithm, mode nor option have been set. The algorithm may only be set once
# for each backend.
#
# ---
# Why I removed `option http-keep-alive`: This is on by default
global
# This because haproxy is dumb and likes to use the maxconnection from the kernel and that is super mega huge making haproxy oom
maxconn 8192
resolvers docker
# To be able to use multiple replicas of invidious
# using domains
nameserver dns1 127.0.0.11:53
defaults
mode http
# https://www.haproxy.com/documentation/haproxy-configuration-tutorials/service-reliability/retries/
# Use another server if one takes too long to reply
retries 4
option redispatch
timeout client 30s
# The default timeout of http request on invidious is 10 seconds.
# If this is less than 10 seconds, the reverse proxy may return
# "503 service unavailable", not letting invidious respond to
# the client.
timeout connect 11s
timeout server 10s
timeout queue 20s
# https://www.haproxy.com/documentation/haproxy-configuration-manual/latest/#4.2-http-reuse
http-reuse safe
# Prometheus for graphs
frontend prometheus
bind *:8404
mode http
http-request use-service prometheus-exporter if { path /metrics }
no log
frontend invidious
bind *:8001
default_backend invidious
frontend invidious2
bind *:8002
default_backend invidious2
frontend invidious3
bind *:8003
default_backend invidious3
frontend invidious4
bind *:8004
default_backend invidious4
frontend invidious5
bind *:8005
default_backend invidious5
backend invidious
server-template srv 2 invidious:3000 check resolvers docker init-addr libc,none
backend invidious2
server-template srv 2 invidious2:3000 check resolvers docker init-addr libc,none
backend invidious3
server-template srv 2 invidious3:3000 check resolvers docker init-addr libc,none
backend invidious4
server-template srv 2 invidious4:3000 check resolvers docker init-addr libc,none
backend invidious5
server-template srv 2 invidious5:3000 check resolvers docker init-addr libc,none