Ich versuche, mich mit den Haproxy-Optionen zu beschäftigen
timeout http-request <timeout>
timeout http-keep-alive <timeout>
timeout server <timeout>
miteinander interagieren. Ich betreibe eine Apache-Website auf zwei App-Servern, die sich hinter einem Haproxy-Load-Balancer befinden. Im Moment habe ich Keep-Alive nicht aktiviert, aber ich habe damit experimentiert, weil ich denke, dass es helfen würde, die Site zu optimieren. Mein Ziel war es, Keep-Alive für die Verbindung zwischen Browser und Haproxy zu aktivieren, aber Keep-Alive zwischen Haproxy und Apache zu deaktivieren. Ich habe das mit erreicht
option http-server-close
Jetzt möchte ich die Keep-Alive-Timeouts einrichten. Ich habe das Haproxy-Handbuch für die Timeout-Option http-request, die Timeout-Option http-keep-alive und die Timeout- Serveroption studiert . Wenn ich das Handbuch richtig verstehe, ist das Timeout http-keep-alive die Zeit, um die Verbindung zwischen neuen Anforderungen offen zu halten, und das Timeout http-request ist die Zeit, um auf die Header der Antwort zu warten, bevor die Verbindung geschlossen wird. Aber was ich anscheinend nicht herausfinden kann, ist, was der Timeout-Server vorschreibt. Ich möchte sagen, dass der Timeout-Server die Zeit ist, auf die vollständige Antwort zu warten, aber kann jemand das bestätigen? Wenn ich recht habe, dass der Timeout-Server die Zeit ist, auf die vollständige Antwort zu warten, habe ich dann Recht, dass er keinen Einfluss auf die Einstellungen für das Keep-Alive-Timeout haben sollte?
Hier ist meine Haproxy-Konfiguration, an deren Änderung ich arbeite:
global
maxconn 4096
pidfile /var/run/haproxy.pid
daemon
defaults
mode http
retries 3
option redispatch
maxconn 5000
timeout connect 5000
timeout client 300000
timeout server 300000
listen HTTP *:80
mode http
cookie HTTP insert nocache
balance roundrobin
#option httpclose # I just commented this out in favor of http-server-close
option http-server-close
timeout http-keep-alive 500 # from the haproxy manual suggestion of "tens to hundreds of ms"
timeout http-request 5000
option forwardfor
stats enable
stats uri /my-lb-status
stats auth myLbStatus:123456
reqadd X-Forwarded-Proto:\ http
option httpchk GET /robots.txt HTTP/1.0
server SERVER_A 1.2.3.4:80 cookie app_01 check
server maintenance 127.0.0.1:8080 backup
Letztendlich ist es mein Ziel, Keep-Alive zwischen dem Browser und Haproxy zu aktivieren, mit der Voraussetzung, dass ein Bericht ausgeführt werden kann, dessen Ausführung auf den App-Servern 2-3 Minuten dauern kann.