Mercurial > hg > nginx-tests
comparison proxy_protocol.t @ 1794:64f19063adfe
Tests: merged tests for proxy protocol server variables.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Tue, 27 Sep 2022 18:39:52 +0400 |
parents | b3bbb59dc324 |
children | 88a098b00534 |
comparison
equal
deleted
inserted
replaced
1793:261967d85363 | 1794:64f19063adfe |
---|---|
24 select STDERR; $| = 1; | 24 select STDERR; $| = 1; |
25 select STDOUT; $| = 1; | 25 select STDOUT; $| = 1; |
26 | 26 |
27 my $t = Test::Nginx->new()->has(qw/http access realip/); | 27 my $t = Test::Nginx->new()->has(qw/http access realip/); |
28 | 28 |
29 $t->write_file_expand('nginx.conf', <<'EOF')->plan(20); | 29 $t->write_file_expand('nginx.conf', <<'EOF')->plan(24); |
30 | 30 |
31 %%TEST_GLOBALS%% | 31 %%TEST_GLOBALS%% |
32 | 32 |
33 daemon off; | 33 daemon off; |
34 | 34 |
38 http { | 38 http { |
39 %%TEST_GLOBALS_HTTP%% | 39 %%TEST_GLOBALS_HTTP%% |
40 | 40 |
41 log_format pp $remote_addr:$remote_port; | 41 log_format pp $remote_addr:$remote_port; |
42 | 42 |
43 add_header X-IP $remote_addr!$remote_port; | |
44 add_header X-PP $proxy_protocol_addr!$proxy_protocol_port; | |
45 add_header X-PPS $proxy_protocol_server_addr!$proxy_protocol_server_port; | |
46 | |
43 server { | 47 server { |
44 listen 127.0.0.1:8080 proxy_protocol; | 48 listen 127.0.0.1:8080 proxy_protocol; |
45 server_name localhost; | 49 server_name localhost; |
46 | 50 |
47 set_real_ip_from 127.0.0.1/32; | 51 set_real_ip_from 127.0.0.1/32; |
48 add_header X-IP $remote_addr!$remote_port; | |
49 add_header X-PP $proxy_protocol_addr!$proxy_protocol_port; | |
50 | 52 |
51 location /pp { | 53 location /pp { |
52 real_ip_header proxy_protocol; | 54 real_ip_header proxy_protocol; |
53 error_page 404 =200 /t1; | 55 error_page 404 =200 /t1; |
54 | 56 |
83 # no realip, just PROXY header parsing | 85 # no realip, just PROXY header parsing |
84 | 86 |
85 $r = pp_get('/t1', $tcp4); | 87 $r = pp_get('/t1', $tcp4); |
86 like($r, qr/SEE-THIS/, 'tcp4 request'); | 88 like($r, qr/SEE-THIS/, 'tcp4 request'); |
87 like($r, qr/X-PP: 192.0.2.1!123\x0d/, 'tcp4 proxy'); | 89 like($r, qr/X-PP: 192.0.2.1!123\x0d/, 'tcp4 proxy'); |
90 like($r, qr/X-PPS: 192.0.2.2!567\x0d/, 'tcp4 proxy server'); | |
88 unlike($r, qr/X-IP: (192.0.2.1|[^!]+!123\x0d)/, 'tcp4 client'); | 91 unlike($r, qr/X-IP: (192.0.2.1|[^!]+!123\x0d)/, 'tcp4 client'); |
89 | 92 |
90 $r = pp_get('/t1', $tcp6); | 93 $r = pp_get('/t1', $tcp6); |
91 like($r, qr/SEE-THIS/, 'tcp6 request'); | 94 like($r, qr/SEE-THIS/, 'tcp6 request'); |
92 like($r, qr/X-PP: 2001:DB8::1!123\x0d/i, 'tcp6 proxy'); | 95 like($r, qr/X-PP: 2001:DB8::1!123\x0d/i, 'tcp6 proxy'); |
96 like($r, qr/X-PPS: 2001:DB8::2!567\x0d/i, 'tcp6 proxy server'); | |
93 unlike($r, qr/X-IP: (2001:DB8::1|[^!]+!123\x0d)/i, 'tcp6 client'); | 97 unlike($r, qr/X-IP: (2001:DB8::1|[^!]+!123\x0d)/i, 'tcp6 client'); |
94 | 98 |
95 $r = pp_get('/t1', $unk1); | 99 $r = pp_get('/t1', $unk1); |
96 like($r, qr/SEE-THIS/, 'unknown request 1'); | 100 like($r, qr/SEE-THIS/, 'unknown request 1'); |
97 like($r, qr/X-PP: !\x0d/, 'unknown proxy 1'); | 101 like($r, qr/X-PP: !\x0d/, 'unknown proxy 1'); |
102 like($r, qr/X-PPS: !\x0d/, 'unknown proxy server 1'); | |
98 | 103 |
99 $r = pp_get('/t1', $unk2); | 104 $r = pp_get('/t1', $unk2); |
100 like($r, qr/SEE-THIS/, 'unknown request 2'); | 105 like($r, qr/SEE-THIS/, 'unknown request 2'); |
101 like($r, qr/X-PP: !\x0d/, 'unknown proxy 2'); | 106 like($r, qr/X-PP: !\x0d/, 'unknown proxy 2'); |
107 like($r, qr/X-PPS: !\x0d/, 'unknown proxy server 2'); | |
102 | 108 |
103 # realip | 109 # realip |
104 | 110 |
105 $r = pp_get('/pp', $tcp4); | 111 $r = pp_get('/pp', $tcp4); |
106 like($r, qr/SEE-THIS/, 'tcp4 request realip'); | 112 like($r, qr/SEE-THIS/, 'tcp4 request realip'); |