mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-01-28 16:53:48 +00:00
43ba3cf2b5
Its sole remaining purpose was to display "proxy foo started", which has little benefit and pollutes output for those with plenty of proxies. Let's remove it now. The VTCs were updated to reflect this, because many of them had explicit counts of dropped lines to match this message. This is tagged as MEDIUM because some users may be surprized by the loss of this quite old message.
139 lines
4.2 KiB
Plaintext
139 lines
4.2 KiB
Plaintext
varnishtest "Health-checks: some http-check tests"
|
|
feature ignore_unknown_macro
|
|
#REQUIRE_VERSION=2.2
|
|
#REGTEST_TYPE=slow
|
|
# This script tests HTTP health-checks.
|
|
|
|
server s1 {
|
|
rxreq
|
|
expect req.method == OPTIONS
|
|
expect req.url == /
|
|
expect req.proto == HTTP/1.0
|
|
txresp
|
|
} -start
|
|
|
|
server s2 {
|
|
rxreq
|
|
expect req.method == GET
|
|
expect req.url == /status
|
|
expect req.proto == HTTP/1.1
|
|
txresp
|
|
} -start
|
|
|
|
server s3 {
|
|
rxreq
|
|
expect req.method == GET
|
|
expect req.url == /status
|
|
expect req.proto == HTTP/1.1
|
|
txresp
|
|
} -start
|
|
|
|
server s4 {
|
|
rxreq
|
|
expect req.method == GET
|
|
expect req.url == /req1
|
|
expect req.proto == HTTP/1.1
|
|
expect req.http.x-test == "server=srv"
|
|
expect req.http.x-haproxy-server-state ~ "UP.+name=be4/srv"
|
|
expect req.bodylen == 0
|
|
txresp
|
|
|
|
accept
|
|
rxreq
|
|
expect req.method == GET
|
|
expect req.url == /req2
|
|
expect req.proto == HTTP/1.1
|
|
expect req.http.x-test == "server="
|
|
expect req.http.x-haproxy-server-state ~ "UP.+name=be4/srv"
|
|
expect req.http.content-length == 17
|
|
expect req.bodylen == 17
|
|
expect req.body == "health-check body"
|
|
txresp
|
|
|
|
accept
|
|
rxreq
|
|
expect req.method == GET
|
|
expect req.url == /req3
|
|
expect req.proto == HTTP/1.0
|
|
expect req.http.x-test == <undef>
|
|
expect req.http.x-haproxy-server-state ~ "UP.+name=be4/srv"
|
|
expect req.bodylen == 0
|
|
txresp
|
|
|
|
accept
|
|
rxreq
|
|
expect req.method == GET
|
|
expect req.url == /
|
|
expect req.proto == HTTP/1.0
|
|
expect req.http.x-test == <undef>
|
|
expect req.http.x-haproxy-server-state ~ "UP.+name=be4/srv"
|
|
expect req.bodylen == 23
|
|
expect req.body == "health-check on be4-srv"
|
|
txresp
|
|
|
|
} -start
|
|
|
|
syslog S1 -level notice {
|
|
recv
|
|
expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be[0-9]/srv succeeded.*code: 200"
|
|
recv
|
|
expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be[0-9]/srv succeeded.*code: 200"
|
|
recv
|
|
expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be[0-9]/srv succeeded.*code: 200"
|
|
recv
|
|
expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be[0-9]/srv succeeded.*code: 200"
|
|
} -start
|
|
|
|
haproxy h1 -conf {
|
|
defaults
|
|
mode http
|
|
timeout client 1s
|
|
timeout server 1s
|
|
timeout connect 100ms
|
|
option log-health-checks
|
|
|
|
backend be1
|
|
log ${S1_addr}:${S1_port} len 2048 local0
|
|
option httpchk
|
|
server srv ${s1_addr}:${s1_port} check inter 100ms rise 1 fall 1
|
|
|
|
backend be2
|
|
log ${S1_addr}:${S1_port} len 2048 local0
|
|
option httpchk GET /status HTTP/1.1
|
|
server srv ${s2_addr}:${s2_port} check inter 100ms rise 1 fall 1
|
|
|
|
backend be3
|
|
log ${S1_addr}:${S1_port} len 2048 local0
|
|
option httpchk
|
|
http-check send meth GET uri /status ver HTTP/1.1
|
|
server srv ${s3_addr}:${s3_port} check inter 100ms rise 1 fall 1
|
|
|
|
backend be4
|
|
mode tcp
|
|
log ${S1_addr}:${S1_port} len 2048 local0
|
|
option httpchk
|
|
http-check send-state
|
|
http-check connect addr ${s4_addr}:${s4_port}
|
|
http-check set-var(check.server) "str(srv)"
|
|
http-check set-var(check.path) "str(/req1)"
|
|
http-check send meth GET uri-lf "%[var(check.path)]" ver HTTP/1.1 hdr x-test "server=%[var(check.server)]"
|
|
http-check expect status 200
|
|
http-check connect addr ${s4_addr} port ${s4_port}
|
|
http-check unset-var(check.server)
|
|
http-check set-var(check.path) "str(/req2)"
|
|
http-check send meth GET uri-lf "%[var(check.path)]" ver HTTP/1.1 hdr x-test "server=%[var(check.server)]" body "health-check body"
|
|
http-check expect rstatus "^2[0-9]{2}"
|
|
http-check connect addr ${s4_addr} port ${s4_port}
|
|
http-check set-var(check.path) "str(/req3)"
|
|
http-check send meth GET uri-lf "%[var(check.path)]"
|
|
http-check expect rstatus "^2[0-9]{2}"
|
|
http-check connect addr ${s4_addr} port ${s4_port}
|
|
http-check unset-var(check.path)
|
|
http-check send meth GET uri-lf "%[var(check.path)]" body-lf "health-check on %[be_name]-%[srv_name]"
|
|
## implicit expect rule
|
|
server srv ${s1_addr}:${s1_port} check inter 100ms rise 1 fall 1
|
|
|
|
} -start
|
|
|
|
syslog S1 -wait
|