Mercurial > hg > nginx-tests
annotate realip_hostname.t @ 1328:a682c219af45
Tests: updated ssl_engine_keys.t test.
After merge with libp11, pkcs11 engine shared object was renamed
from "engine_pkcs11.so" to "pkcs11.so". Changed configuration
accordingly.
Additionally, changed "init" to "1" in the engine configuration. This
keeps pkcs11 engine loaded and prevents segmentation faults observed
during nginx shutdown.
While here, restored correct order of ssl_certificate and ssl_certificate_key.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Tue, 22 May 2018 17:46:59 +0300 |
parents | eaa92d810bbb |
children | 97c8280de681 |
rev | line source |
---|---|
1176
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
2 |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
3 # (C) Sergey Kandaurov |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
4 # (C) Nginx, Inc. |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
5 |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
6 # Tests for nginx realip module, 'unix:' and hostname in set_real_ip_from. |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
7 |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
8 ############################################################################### |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
9 |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
10 use warnings; |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
11 use strict; |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
12 |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
13 use Test::More; |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
14 |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
15 BEGIN { use FindBin; chdir($FindBin::Bin); } |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
16 |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
17 use lib 'lib'; |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
18 use Test::Nginx; |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
19 |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
20 ############################################################################### |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
21 |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
22 select STDERR; $| = 1; |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
23 select STDOUT; $| = 1; |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
24 |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
25 my $t = Test::Nginx->new()->has(qw/http realip proxy unix/); |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
26 |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
27 $t->write_file_expand('nginx.conf', <<'EOF'); |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
28 |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
29 %%TEST_GLOBALS%% |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
30 |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
31 daemon off; |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
32 |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
33 events { |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
34 } |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
35 |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
36 http { |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
37 %%TEST_GLOBALS_HTTP%% |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
38 |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
39 server { |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
40 listen 127.0.0.1:8080; |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
41 listen unix:%%TESTDIR%%/unix.sock; |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
42 server_name localhost; |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
43 |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
44 location /1 { |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
45 set_real_ip_from localhost; |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
46 add_header X-IP $remote_addr; |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
47 } |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
48 |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
49 location /2 { |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
50 set_real_ip_from unix:; |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
51 add_header X-IP $remote_addr; |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
52 } |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
53 |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
54 location /unix { |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
55 proxy_pass http://unix:%%TESTDIR%%/unix.sock:/; |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
56 proxy_set_header X-Real-IP 192.0.2.1; |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
57 } |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
58 |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
59 location /ip { |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
60 proxy_pass http://127.0.0.1:8080/; |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
61 proxy_set_header X-Real-IP 192.0.2.1; |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
62 } |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
63 } |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
64 } |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
65 |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
66 EOF |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
67 |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
68 $t->write_file('1', ''); |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
69 $t->write_file('2', ''); |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
70 $t->try_run('no realip hostnames support'); |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
71 |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
72 plan(skip_all => 'no 127.0.0.1 on host') |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
73 if http_get('/1') !~ /X-IP: 127.0.0.1/m; |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
74 |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
75 $t->plan(4); |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
76 |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
77 ############################################################################### |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
78 |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
79 like(http_get('/unix/2'), qr/X-IP: 192.0.2.1/, 'realip unix'); |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
80 unlike(http_get('/unix/1'), qr/X-IP: 192.0.2.1/, 'realip unix - no match'); |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
81 |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
82 like(http_get('/ip/1'), qr/X-IP: 192.0.2.1/, 'realip hostname'); |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
83 unlike(http_get('/ip/2'), qr/X-IP: 192.0.2.1/, 'realip hostname - no match'); |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
84 |
eaa92d810bbb
Tests: realip tests for 'unix:' and hostname in set_real_ip_from.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
85 ############################################################################### |