Mercurial > hg > nginx-tests
annotate proxy_protocol2.t @ 1951:1867428f1673
Tests: fixed h3_limit_req.t spurious failures.
In the "reset stream - cancellation" test, HTTP/3 stream is closed without
sending the request body when the request is waiting in the limit_req
module, and this results in error 444. However, when the request is received
with some minor delay due to system load, it is not delayed by limit_req,
and the stream is closed during reading the request body, which results
in error 400 instead, breaking the test.
Fix is to introduce yet another request before the "reset stream" test,
so the stream in question is always delayed by limit_req.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Thu, 14 Mar 2024 02:25:49 +0300 |
parents | 7102245abedf |
children |
rev | line source |
---|---|
1309
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
2 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
3 # (C) Sergey Kandaurov |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
4 # (C) Nginx, Inc. |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
5 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
6 # Tests for haproxy protocol. |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
7 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
8 ############################################################################### |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
9 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
10 use warnings; |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
11 use strict; |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
12 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
13 use Test::More; |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
14 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
15 BEGIN { use FindBin; chdir($FindBin::Bin); } |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
16 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
17 use lib 'lib'; |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
18 use Test::Nginx; |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
19 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
20 ############################################################################### |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
21 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
22 select STDERR; $| = 1; |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
23 select STDOUT; $| = 1; |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
24 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
25 my $t = Test::Nginx->new()->has(qw/http access realip/); |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
26 |
1798
7102245abedf
Tests: removing unneeded changes in the previous commit.
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
1797
diff
changeset
|
27 $t->write_file_expand('nginx.conf', <<'EOF')->plan(28); |
1309
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
28 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
29 %%TEST_GLOBALS%% |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
30 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
31 daemon off; |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
32 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
33 events { |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
34 } |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
35 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
36 http { |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
37 %%TEST_GLOBALS_HTTP%% |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
38 |
1526
b3bbb59dc324
Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1381
diff
changeset
|
39 log_format pp $remote_addr:$remote_port; |
1309
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
40 |
1794
64f19063adfe
Tests: merged tests for proxy protocol server variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1526
diff
changeset
|
41 add_header X-IP $remote_addr!$remote_port; |
64f19063adfe
Tests: merged tests for proxy protocol server variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1526
diff
changeset
|
42 add_header X-PP $proxy_protocol_addr!$proxy_protocol_port; |
64f19063adfe
Tests: merged tests for proxy protocol server variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1526
diff
changeset
|
43 add_header X-PPS $proxy_protocol_server_addr!$proxy_protocol_server_port; |
64f19063adfe
Tests: merged tests for proxy protocol server variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1526
diff
changeset
|
44 |
1309
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
45 server { |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
46 listen 127.0.0.1:8080 proxy_protocol; |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
47 server_name localhost; |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
48 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
49 set_real_ip_from 127.0.0.1/32; |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
50 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
51 location /pp { |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
52 real_ip_header proxy_protocol; |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
53 error_page 404 =200 /t1; |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
54 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
55 location /pp_4 { |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
56 deny 192.0.2.1/32; |
1526
b3bbb59dc324
Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1381
diff
changeset
|
57 access_log %%TESTDIR%%/pp4.log pp; |
1309
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
58 } |
1526
b3bbb59dc324
Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1381
diff
changeset
|
59 |
1309
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
60 location /pp_6 { |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
61 deny 2001:DB8::1/128; |
1526
b3bbb59dc324
Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1381
diff
changeset
|
62 access_log %%TESTDIR%%/pp6.log pp; |
1309
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
63 } |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
64 } |
1526
b3bbb59dc324
Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1381
diff
changeset
|
65 |
b3bbb59dc324
Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1381
diff
changeset
|
66 location / { } |
1309
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
67 } |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
68 } |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
69 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
70 EOF |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
71 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
72 $t->write_file('t1', 'SEE-THIS'); |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
73 $t->run(); |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
74 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
75 ############################################################################### |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
76 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
77 my $p = pack("N3C", 0x0D0A0D0A, 0x000D0A51, 0x5549540A, 0x21); |
1526
b3bbb59dc324
Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1381
diff
changeset
|
78 my $tcp4 = $p . pack("CnN2n2", 0x11, 12, 0xc0000201, 0xc0000202, 123, 5678); |
1309
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
79 my $tcp6 = $p . pack("CnNx8NNx8Nn2", 0x21, 36, |
1526
b3bbb59dc324
Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1381
diff
changeset
|
80 0x20010db8, 0x00000001, 0x20010db8, 0x00000002, 123, 5678); |
1798
7102245abedf
Tests: removing unneeded changes in the previous commit.
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
1797
diff
changeset
|
81 my $tlv = $p . pack("CnN2n2x9", 0x11, 21, 0xc0000201, 0xc0000202, 123, 5678); |
1309
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
82 my $unk1 = $p . pack("Cxx", 0x01); |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
83 my $unk2 = $p . pack("CnC4", 0x41, 4, 1, 2, 3, 4); |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
84 my $r; |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
85 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
86 # no realip, just PROXY header parsing |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
87 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
88 $r = pp_get('/t1', $tcp4); |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
89 like($r, qr/SEE-THIS/, 'tcp4 request'); |
1526
b3bbb59dc324
Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1381
diff
changeset
|
90 like($r, qr/X-PP: 192.0.2.1!123\x0d/, 'tcp4 proxy'); |
1795
88a098b00534
Tests: fixed previous commit mismerge.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1794
diff
changeset
|
91 like($r, qr/X-PPS: 192.0.2.2!5678\x0d/, 'tcp4 proxy server'); |
1526
b3bbb59dc324
Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1381
diff
changeset
|
92 unlike($r, qr/X-IP: (192.0.2.1|[^!]+!123\x0d)/, 'tcp4 client'); |
1309
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
93 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
94 $r = pp_get('/t1', $tcp6); |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
95 like($r, qr/SEE-THIS/, 'tcp6 request'); |
1526
b3bbb59dc324
Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1381
diff
changeset
|
96 like($r, qr/X-PP: 2001:DB8::1!123\x0d/i, 'tcp6 proxy'); |
1795
88a098b00534
Tests: fixed previous commit mismerge.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1794
diff
changeset
|
97 like($r, qr/X-PPS: 2001:DB8::2!5678\x0d/i, 'tcp6 proxy server'); |
1526
b3bbb59dc324
Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1381
diff
changeset
|
98 unlike($r, qr/X-IP: (2001:DB8::1|[^!]+!123\x0d)/i, 'tcp6 client'); |
1309
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
99 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
100 $r = pp_get('/t1', $tlv); |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
101 like($r, qr/SEE-THIS/, 'tlv request'); |
1526
b3bbb59dc324
Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1381
diff
changeset
|
102 like($r, qr/X-PP: 192.0.2.1!123\x0d/, 'tlv proxy'); |
1795
88a098b00534
Tests: fixed previous commit mismerge.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1794
diff
changeset
|
103 like($r, qr/X-PPS: 192.0.2.2!5678\x0d/, 'tlv proxy server'); |
1526
b3bbb59dc324
Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1381
diff
changeset
|
104 unlike($r, qr/X-IP: (192.0.2.1|[^!]+!123\x0d)/, 'tlv client'); |
1309
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
105 |
1526
b3bbb59dc324
Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1381
diff
changeset
|
106 $r = pp_get('/t1', $unk1); |
b3bbb59dc324
Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1381
diff
changeset
|
107 like($r, qr/SEE-THIS/, 'unknown request 1'); |
b3bbb59dc324
Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1381
diff
changeset
|
108 like($r, qr/X-PP: !\x0d/, 'unknown proxy 1'); |
1794
64f19063adfe
Tests: merged tests for proxy protocol server variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1526
diff
changeset
|
109 like($r, qr/X-PPS: !\x0d/, 'unknown proxy server 1'); |
1526
b3bbb59dc324
Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1381
diff
changeset
|
110 |
b3bbb59dc324
Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1381
diff
changeset
|
111 $r = pp_get('/t1', $unk2); |
b3bbb59dc324
Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1381
diff
changeset
|
112 like($r, qr/SEE-THIS/, 'unknown request 2'); |
b3bbb59dc324
Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1381
diff
changeset
|
113 like($r, qr/X-PP: !\x0d/, 'unknown proxy 2'); |
1794
64f19063adfe
Tests: merged tests for proxy protocol server variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1526
diff
changeset
|
114 like($r, qr/X-PPS: !\x0d/, 'unknown proxy server 2'); |
1309
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
115 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
116 # realip |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
117 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
118 $r = pp_get('/pp', $tcp4); |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
119 like($r, qr/SEE-THIS/, 'tcp4 request realip'); |
1526
b3bbb59dc324
Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1381
diff
changeset
|
120 like($r, qr/X-PP: 192.0.2.1!123\x0d/, 'tcp4 proxy realip'); |
b3bbb59dc324
Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1381
diff
changeset
|
121 like($r, qr/X-IP: 192.0.2.1!123\x0d/, 'tcp4 client realip'); |
1309
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
122 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
123 $r = pp_get('/pp', $tcp6); |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
124 like($r, qr/SEE-THIS/, 'tcp6 request realip'); |
1526
b3bbb59dc324
Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1381
diff
changeset
|
125 like($r, qr/X-PP: 2001:DB8::1!123\x0d/i, 'tcp6 proxy realip'); |
b3bbb59dc324
Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1381
diff
changeset
|
126 like($r, qr/X-IP: 2001:DB8::1!123\x0d/i, 'tcp6 client realip'); |
1309
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
127 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
128 # access |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
129 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
130 $r = pp_get('/pp_4', $tcp4); |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
131 like($r, qr/403 Forbidden/, 'tcp4 access'); |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
132 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
133 $r = pp_get('/pp_6', $tcp6); |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
134 like($r, qr/403 Forbidden/, 'tcp6 access'); |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
135 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
136 # client address in access.log |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
137 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
138 $t->stop(); |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
139 |
1526
b3bbb59dc324
Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1381
diff
changeset
|
140 is($t->read_file('pp4.log'), "192.0.2.1:123\n", 'tcp4 log'); |
b3bbb59dc324
Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1381
diff
changeset
|
141 is($t->read_file('pp6.log'), "2001:db8::1:123\n", 'tcp6 log'); |
1309
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
142 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
143 ############################################################################### |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
144 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
145 sub pp_get { |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
146 my ($url, $proxy) = @_; |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
147 return http($proxy . <<EOF); |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
148 GET $url HTTP/1.0 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
149 Host: localhost |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
150 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
151 EOF |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
152 } |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
153 |
3eb1de7e3b41
Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
154 ############################################################################### |