Mercurial > hg > nginx-tests
comparison stream_upstream_zone_ssl.t @ 1195:af7feabed82a
Tests: stream proxy ssl session tests no longer use http backends.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Wed, 19 Jul 2017 16:21:42 +0300 |
parents | 8ef51dbb5d69 |
children | 155573499f20 |
comparison
equal
deleted
inserted
replaced
1194:39cfdf581253 | 1195:af7feabed82a |
---|---|
14 | 14 |
15 BEGIN { use FindBin; chdir($FindBin::Bin); } | 15 BEGIN { use FindBin; chdir($FindBin::Bin); } |
16 | 16 |
17 use lib 'lib'; | 17 use lib 'lib'; |
18 use Test::Nginx; | 18 use Test::Nginx; |
19 use Test::Nginx::Stream qw/ stream /; | |
19 | 20 |
20 ############################################################################### | 21 ############################################################################### |
21 | 22 |
22 select STDERR; $| = 1; | 23 select STDERR; $| = 1; |
23 select STDOUT; $| = 1; | 24 select STDOUT; $| = 1; |
24 | 25 |
25 my $t = Test::Nginx->new()->has(qw/stream stream_ssl http http_ssl/) | 26 my $t = Test::Nginx->new()->has(qw/stream stream_ssl stream_return/) |
26 ->has(qw/stream_upstream_zone/)->has_daemon('openssl')->plan(8); | 27 ->has(qw/stream_upstream_zone/)->has_daemon('openssl')->plan(8); |
27 | 28 |
28 $t->write_file_expand('nginx.conf', <<'EOF'); | 29 $t->write_file_expand('nginx.conf', <<'EOF'); |
29 | 30 |
30 %%TEST_GLOBALS%% | 31 %%TEST_GLOBALS%% |
68 | 69 |
69 server { | 70 server { |
70 listen 127.0.0.1:8083; | 71 listen 127.0.0.1:8083; |
71 proxy_pass u2; | 72 proxy_pass u2; |
72 } | 73 } |
73 } | |
74 | |
75 http { | |
76 %%TEST_GLOBALS_HTTP%% | |
77 | 74 |
78 server { | 75 server { |
79 listen 127.0.0.1:8084 ssl; | 76 listen 127.0.0.1:8084 ssl; |
77 return $ssl_session_reused; | |
80 | 78 |
81 ssl_certificate_key localhost.key; | 79 ssl_certificate_key localhost.key; |
82 ssl_certificate localhost.crt; | 80 ssl_certificate localhost.crt; |
83 ssl_session_cache builtin; | 81 ssl_session_cache builtin; |
84 | |
85 location / { | |
86 add_header X-Session $ssl_session_reused; | |
87 } | |
88 } | 82 } |
89 } | 83 } |
90 | 84 |
91 EOF | 85 EOF |
92 | 86 |
95 default_bits = 1024 | 89 default_bits = 1024 |
96 encrypt_key = no | 90 encrypt_key = no |
97 distinguished_name = req_distinguished_name | 91 distinguished_name = req_distinguished_name |
98 [ req_distinguished_name ] | 92 [ req_distinguished_name ] |
99 EOF | 93 EOF |
100 | |
101 $t->write_file('index.html', ''); | |
102 | 94 |
103 my $d = $t->testdir(); | 95 my $d = $t->testdir(); |
104 | 96 |
105 foreach my $name ('localhost') { | 97 foreach my $name ('localhost') { |
106 system('openssl req -x509 -new ' | 98 system('openssl req -x509 -new ' |
112 | 104 |
113 $t->run(); | 105 $t->run(); |
114 | 106 |
115 ############################################################################### | 107 ############################################################################### |
116 | 108 |
117 like(http_get('/'), qr/200 OK.*X-Session: \./s, 'ssl'); | 109 is(stream('127.0.0.1:' . port(8080))->read(), '.', 'ssl'); |
118 like(http_get('/', socket => getconn('127.0.0.1:' . port(8081))), | 110 is(stream('127.0.0.1:' . port(8080))->read(), '.', 'ssl 2'); |
119 qr/200 OK.*X-Session: \./s, 'ssl 2'); | |
120 | 111 |
121 like(http_get('/'), qr/200 OK.*X-Session: \./s, 'ssl reuse session'); | 112 is(stream('127.0.0.1:' . port(8081))->read(), '.', 'ssl session new'); |
122 like(http_get('/', socket => getconn('127.0.0.1:' . port(8081))), | 113 is(stream('127.0.0.1:' . port(8081))->read(), 'r', 'ssl session reused'); |
123 qr/200 OK.*X-Session: r/s, 'ssl reuse session 2'); | |
124 | 114 |
125 like(http_get('/', socket => getconn('127.0.0.1:' . port(8082))), | 115 is(stream('127.0.0.1:' . port(8082))->read(), '.', 'backup ssl'); |
126 qr/200 OK.*X-Session: \./s, 'ssl backup'); | 116 is(stream('127.0.0.1:' . port(8082))->read(), '.', 'backup ssl 2'); |
127 like(http_get('/', socket => getconn('127.0.0.1:' . port(8083))), | |
128 qr/200 OK.*X-Session: \./s, 'ssl backup 2'); | |
129 | 117 |
130 like(http_get('/', socket => getconn('127.0.0.1:' . port(8082))), | 118 is(stream('127.0.0.1:' . port(8083))->read(), '.', 'backup ssl session new'); |
131 qr/200 OK.*X-Session: \./s, 'ssl reuse session backup'); | 119 is(stream('127.0.0.1:' . port(8083))->read(), 'r', 'backup ssl session reused'); |
132 like(http_get('/', socket => getconn('127.0.0.1:' . port(8083))), | |
133 qr/200 OK.*X-Session: r/s, 'ssl reuse session backup 2'); | |
134 | 120 |
135 ############################################################################### | 121 ############################################################################### |
136 | |
137 sub getconn { | |
138 my $peer = shift; | |
139 my $s = IO::Socket::INET->new( | |
140 Proto => 'tcp', | |
141 PeerAddr => $peer | |
142 ) | |
143 or die "Can't connect to nginx: $!\n"; | |
144 | |
145 return $s; | |
146 } | |
147 | |
148 ############################################################################### |