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');