mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-01-23 22:12:46 +00:00
36d936dd15
This test instantiates two haproxy instances : * first one uses a reverse server with two bind pub and priv * second one uses a reverse bind to initiate connection to priv endpoint On startup, only first haproxy instance is up. A client send a request to pub endpoint and should receive a HTTP 503 as no connection are available on the reverse server. Second haproxy instance is started. A delay of 3 seconds is inserted to wait for the connection between the two LBs. Then a client retry the request and this time should receive a HTTP 200 reusing the bootstrapped connection.
65 lines
1.2 KiB
Plaintext
65 lines
1.2 KiB
Plaintext
varnishtest "Reverse connect full test"
|
|
feature ignore_unknown_macro
|
|
|
|
#REQUIRE_VERSION=2.9
|
|
|
|
server s1 {
|
|
rxreq
|
|
txresp
|
|
} -start
|
|
|
|
haproxy h_edge -conf {
|
|
defaults
|
|
log global
|
|
timeout connect "${HAPROXY_TEST_TIMEOUT-5s}"
|
|
timeout client "${HAPROXY_TEST_TIMEOUT-5s}"
|
|
timeout server "${HAPROXY_TEST_TIMEOUT-5s}"
|
|
mode http
|
|
|
|
frontend pub
|
|
bind "fd@${pub}"
|
|
use_backend be-reverse
|
|
|
|
backend be-reverse
|
|
server dev @reverse
|
|
|
|
frontend priv
|
|
bind "fd@${priv}" proto h2
|
|
tcp-request session attach-srv be-reverse/dev
|
|
} -start
|
|
|
|
haproxy h_dev -conf {
|
|
defaults
|
|
log global
|
|
timeout connect "${HAPROXY_TEST_TIMEOUT-5s}"
|
|
timeout client "${HAPROXY_TEST_TIMEOUT-5s}"
|
|
timeout server "${HAPROXY_TEST_TIMEOUT-5s}"
|
|
mode http
|
|
|
|
frontend fe
|
|
bind "rev@be-pre-connect/srv" maxconn 1
|
|
use_backend be
|
|
|
|
backend be-pre-connect
|
|
server srv ${h_edge_priv_addr}:${h_edge_priv_port} proto h2
|
|
|
|
backend be
|
|
server srv ${s1_addr}:${s1_port}
|
|
}
|
|
|
|
client c1 -connect ${h_edge_pub_sock} {
|
|
txreq -url "/"
|
|
rxresp
|
|
expect resp.status == 503
|
|
} -run
|
|
|
|
haproxy h_dev -start
|
|
# TODO replace delay by a proper wait
|
|
delay 3
|
|
|
|
client c1 -connect ${h_edge_pub_sock} {
|
|
txreq -url "/"
|
|
rxresp
|
|
expect resp.status == 200
|
|
} -run
|