1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
|
varnishtest "Test the errorfiles directive"
# This config tests the errorfiles directive.
feature ignore_unknown_macro
haproxy h1 -conf {
http-errors errors-1
errorfile 400 ${testdir}/errors/400-1.http
errorfile 403 ${testdir}/errors/403-1.http
errorfile 404 ${testdir}/errors/404-1.http
errorfile 500 ${testdir}/errors/500-1.http
http-errors errors-2
errorfile 400 ${testdir}/errors/400-2.http
errorfile 403 ${testdir}/errors/403-2.http
errorfile 404 ${testdir}/errors/404-2.http
http-errors errors-3
errorfile 400 ${testdir}/errors/400-3.http
errorfile 404 ${testdir}/errors/404-3.http
defaults
mode http
timeout connect "${HAPROXY_TEST_TIMEOUT-5s}"
timeout client "${HAPROXY_TEST_TIMEOUT-5s}"
timeout server "${HAPROXY_TEST_TIMEOUT-5s}"
errorfiles errors-2
errorfile 400 ${testdir}/errors/400.http
errorfile 404 ${testdir}/errors/404.http
frontend fe1
bind "fd@${fe1}"
http-request deny deny_status 400 if { path /400 }
http-request deny if { path /403 }
http-request deny deny_status 404 if { path /404 }
http-request deny deny_status 500 if { path /500 }
frontend fe2
bind "fd@${fe2}"
errorfiles errors-1
errorfile 500 ${testdir}/errors/500.http
http-request deny deny_status 400 if { path /400 }
http-request deny if { path /403 }
http-request deny deny_status 404 if { path /404 }
http-request deny deny_status 500 if { path /500 }
frontend fe3
bind "fd@${fe3}"
errorfile 500 ${testdir}/errors/500.http
errorfiles errors-1 500
errorfiles errors-3 400
http-request deny deny_status 400 if { path /400 }
http-request deny if { path /403 }
http-request deny deny_status 404 if { path /404 }
http-request deny deny_status 500 if { path /500 }
} -start
client c1r1 -connect ${h1_fe1_sock} {
txreq -req GET -url /400
rxresp
expect resp.status == 400
expect resp.http.x-err-type == "default"
} -run
client c1r2 -connect ${h1_fe1_sock} {
txreq -req GET -url /403
rxresp
expect resp.status == 403
expect resp.http.x-err-type == "errors-2"
} -run
client c1r3 -connect ${h1_fe1_sock} {
txreq -req GET -url /404
rxresp
expect resp.status == 404
expect resp.http.x-err-type == "default"
} -run
client c1r4 -connect ${h1_fe1_sock} {
txreq -req GET -url /500
rxresp
expect resp.status == 500
expect resp.http.x-err-type == <undef>
} -run
client c2r1 -connect ${h1_fe2_sock} {
txreq -req GET -url /400
rxresp
expect resp.status == 400
expect resp.http.x-err-type == "errors-1"
} -run
client c2r2 -connect ${h1_fe2_sock} {
txreq -req GET -url /403
rxresp
expect resp.status == 403
expect resp.http.x-err-type == "errors-1"
} -run
client c2r3 -connect ${h1_fe2_sock} {
txreq -req GET -url /404
rxresp
expect resp.status == 404
expect resp.http.x-err-type == "errors-1"
} -run
client c2r4 -connect ${h1_fe2_sock} {
txreq -req GET -url /500
rxresp
expect resp.status == 500
expect resp.http.x-err-type == "default"
} -run
client c3r1 -connect ${h1_fe3_sock} {
txreq -req GET -url /400
rxresp
expect resp.status == 400
expect resp.http.x-err-type == "errors-3"
} -run
client c3r2 -connect ${h1_fe3_sock} {
txreq -req GET -url /403
rxresp
expect resp.status == 403
expect resp.http.x-err-type == "errors-2"
} -run
client c3r3 -connect ${h1_fe3_sock} {
txreq -req GET -url /404
rxresp
expect resp.status == 404
expect resp.http.x-err-type == "default"
} -run
client c3r4 -connect ${h1_fe3_sock} {
txreq -req GET -url /500
rxresp
expect resp.status == 500
expect resp.http.x-err-type == "errors-1"
} -run
|