mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-01-03 10:42:07 +00:00
86e5c607d1
Mark the reverse HTTP feature as experimental. This will allow to adjust if needed the configuration mechanism with future developments without maintaining retro-compatibility. Concretely, each config directives linked to it now requires to specify first global expose-experimental-directives before. This is the case for the following directives : - rhttp@ prefix uses in bind and server lines - nbconn bind keyword - attach-srv tcp rule Each documentation section refering to these keywords are updated to highlight this new requirement. Note that this commit has duplicated on several places the code from the global function check_kw_experimental(). This is because the latter only work with cfg_keyword type. This is not adapted with bind_kw or action_kw types. This should be improve in a future patch.
70 lines
1.3 KiB
Plaintext
70 lines
1.3 KiB
Plaintext
varnishtest "Reverse server test"
|
|
feature ignore_unknown_macro
|
|
|
|
#REQUIRE_VERSION=2.9
|
|
|
|
barrier b1 cond 2
|
|
|
|
haproxy h_edge -conf {
|
|
global
|
|
expose-experimental-directives
|
|
|
|
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 rhttp@
|
|
|
|
frontend priv
|
|
bind "fd@${priv}" proto h2
|
|
tcp-request session attach-srv be-reverse/dev
|
|
} -start
|
|
|
|
# Run a client through public endpoint
|
|
# Reverse server has no connection available thus a 503 is expected
|
|
client c1 -connect ${h_edge_pub_sock} {
|
|
txreq -url "/"
|
|
rxresp
|
|
expect resp.status == 503
|
|
} -run
|
|
|
|
# Run a client through private endpoint
|
|
# Connection will be attached to the reverse server
|
|
client c_dev -connect ${h_edge_priv_sock} {
|
|
txpri
|
|
|
|
stream 0 {
|
|
txsettings
|
|
rxsettings
|
|
txsettings -ack
|
|
rxsettings
|
|
expect settings.ack == true
|
|
} -run
|
|
|
|
barrier b1 sync
|
|
stream 1 {
|
|
rxhdrs
|
|
} -run
|
|
|
|
sendhex "000004 01 05 00000001 88 5c 01 30"
|
|
} -start
|
|
|
|
# Wait for dev client to be ready to process connection
|
|
barrier b1 sync
|
|
|
|
# Run a client through public endpoint
|
|
# Reverse server should now be able to proceed with the request
|
|
client c2 -connect ${h_edge_pub_sock} {
|
|
txreq -url "/"
|
|
rxresp
|
|
expect resp.status == 200
|
|
} -run
|