Mercurial > hg > nginx-tests
comparison proxy_protocol2.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 |
---|---|
22 select STDERR; $| = 1; | 22 select STDERR; $| = 1; |
23 select STDOUT; $| = 1; | 23 select STDOUT; $| = 1; |
24 | 24 |
25 my $t = Test::Nginx->new()->has(qw/http access realip/); | 25 my $t = Test::Nginx->new()->has(qw/http access realip/); |
26 | 26 |
27 $t->write_file_expand('nginx.conf', <<'EOF')->plan(23); | 27 $t->write_file_expand('nginx.conf', <<'EOF')->plan(28); |
28 | 28 |
29 %%TEST_GLOBALS%% | 29 %%TEST_GLOBALS%% |
30 | 30 |
31 daemon off; | 31 daemon off; |
32 | 32 |
36 http { | 36 http { |
37 %%TEST_GLOBALS_HTTP%% | 37 %%TEST_GLOBALS_HTTP%% |
38 | 38 |
39 log_format pp $remote_addr:$remote_port; | 39 log_format pp $remote_addr:$remote_port; |
40 | 40 |
41 add_header X-IP $remote_addr!$remote_port; | |
42 add_header X-PP $proxy_protocol_addr!$proxy_protocol_port; | |
43 add_header X-PPS $proxy_protocol_server_addr!$proxy_protocol_server_port; | |
44 | |
41 server { | 45 server { |
42 listen 127.0.0.1:8080 proxy_protocol; | 46 listen 127.0.0.1:8080 proxy_protocol; |
43 server_name localhost; | 47 server_name localhost; |
44 | 48 |
45 set_real_ip_from 127.0.0.1/32; | 49 set_real_ip_from 127.0.0.1/32; |
46 add_header X-IP $remote_addr!$remote_port; | |
47 add_header X-PP $proxy_protocol_addr!$proxy_protocol_port; | |
48 | 50 |
49 location /pp { | 51 location /pp { |
50 real_ip_header proxy_protocol; | 52 real_ip_header proxy_protocol; |
51 error_page 404 =200 /t1; | 53 error_page 404 =200 /t1; |
52 | 54 |
84 # no realip, just PROXY header parsing | 86 # no realip, just PROXY header parsing |
85 | 87 |
86 $r = pp_get('/t1', $tcp4); | 88 $r = pp_get('/t1', $tcp4); |
87 like($r, qr/SEE-THIS/, 'tcp4 request'); | 89 like($r, qr/SEE-THIS/, 'tcp4 request'); |
88 like($r, qr/X-PP: 192.0.2.1!123\x0d/, 'tcp4 proxy'); | 90 like($r, qr/X-PP: 192.0.2.1!123\x0d/, 'tcp4 proxy'); |
91 like($r, qr/X-PPS: 192.0.2.2!567\x0d/, 'tcp4 proxy server'); | |
89 unlike($r, qr/X-IP: (192.0.2.1|[^!]+!123\x0d)/, 'tcp4 client'); | 92 unlike($r, qr/X-IP: (192.0.2.1|[^!]+!123\x0d)/, 'tcp4 client'); |
90 | 93 |
91 $r = pp_get('/t1', $tcp6); | 94 $r = pp_get('/t1', $tcp6); |
92 like($r, qr/SEE-THIS/, 'tcp6 request'); | 95 like($r, qr/SEE-THIS/, 'tcp6 request'); |
93 like($r, qr/X-PP: 2001:DB8::1!123\x0d/i, 'tcp6 proxy'); | 96 like($r, qr/X-PP: 2001:DB8::1!123\x0d/i, 'tcp6 proxy'); |
97 like($r, qr/X-PPS: 2001:DB8::2!567\x0d/i, 'tcp6 proxy server'); | |
94 unlike($r, qr/X-IP: (2001:DB8::1|[^!]+!123\x0d)/i, 'tcp6 client'); | 98 unlike($r, qr/X-IP: (2001:DB8::1|[^!]+!123\x0d)/i, 'tcp6 client'); |
95 | 99 |
96 $r = pp_get('/t1', $tlv); | 100 $r = pp_get('/t1', $tlv); |
97 like($r, qr/SEE-THIS/, 'tlv request'); | 101 like($r, qr/SEE-THIS/, 'tlv request'); |
98 like($r, qr/X-PP: 192.0.2.1!123\x0d/, 'tlv proxy'); | 102 like($r, qr/X-PP: 192.0.2.1!123\x0d/, 'tlv proxy'); |
103 like($r, qr/X-PPS: 192.0.2.2!567\x0d/, 'tlv proxy server'); | |
99 unlike($r, qr/X-IP: (192.0.2.1|[^!]+!123\x0d)/, 'tlv client'); | 104 unlike($r, qr/X-IP: (192.0.2.1|[^!]+!123\x0d)/, 'tlv client'); |
100 | 105 |
101 $r = pp_get('/t1', $unk1); | 106 $r = pp_get('/t1', $unk1); |
102 like($r, qr/SEE-THIS/, 'unknown request 1'); | 107 like($r, qr/SEE-THIS/, 'unknown request 1'); |
103 like($r, qr/X-PP: !\x0d/, 'unknown proxy 1'); | 108 like($r, qr/X-PP: !\x0d/, 'unknown proxy 1'); |
109 like($r, qr/X-PPS: !\x0d/, 'unknown proxy server 1'); | |
104 | 110 |
105 $r = pp_get('/t1', $unk2); | 111 $r = pp_get('/t1', $unk2); |
106 like($r, qr/SEE-THIS/, 'unknown request 2'); | 112 like($r, qr/SEE-THIS/, 'unknown request 2'); |
107 like($r, qr/X-PP: !\x0d/, 'unknown proxy 2'); | 113 like($r, qr/X-PP: !\x0d/, 'unknown proxy 2'); |
114 like($r, qr/X-PPS: !\x0d/, 'unknown proxy server 2'); | |
108 | 115 |
109 # realip | 116 # realip |
110 | 117 |
111 $r = pp_get('/pp', $tcp4); | 118 $r = pp_get('/pp', $tcp4); |
112 like($r, qr/SEE-THIS/, 'tcp4 request realip'); | 119 like($r, qr/SEE-THIS/, 'tcp4 request realip'); |