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