diff --git a/lib/Test/Nginx.pm b/lib/Test/Nginx.pm
index ee5a635..0a45181 100644
--- a/lib/Test/Nginx.pm
+++ b/lib/Test/Nginx.pm
@@ -124,6 +124,7 @@
 		charset	=> '(?s)^(?!.*--without-http_charset_module)',
 		gzip	=> '(?s)^(?!.*--without-http_gzip_module)',
 		ssi	=> '(?s)^(?!.*--without-http_ssi_module)',
+		mirror	=> '(?s)^(?!.*--without-http_mirror_module)',
 		userid	=> '(?s)^(?!.*--without-http_userid_module)',
 		access	=> '(?s)^(?!.*--without-http_access_module)',
 		auth_basic
diff --git a/mirror.t b/mirror.t
new file mode 100644
index 0000000..fd1c655
--- /dev/null
+++ b/mirror.t
@@ -0,0 +1,86 @@
+#!/usr/bin/perl
+
+# (C) Sergey Kandaurov
+# (C) Nginx, Inc.
+
+# Tests for http mirror module.
+
+###############################################################################
+
+use warnings;
+use strict;
+
+use Test::More;
+
+BEGIN { use FindBin; chdir($FindBin::Bin); }
+
+use lib 'lib';
+use Test::Nginx;
+
+###############################################################################
+
+select STDERR; $| = 1;
+select STDOUT; $| = 1;
+
+my $t = Test::Nginx->new()->has(qw/http mirror/);
+
+$t->write_file_expand('nginx.conf', <<'EOF');
+
+%%TEST_GLOBALS%%
+
+daemon off;
+
+events {
+}
+
+http {
+    %%TEST_GLOBALS_HTTP%%
+
+    log_format test $uri;
+
+    server {
+        listen       127.0.0.1:8080;
+        server_name  localhost;
+
+        location / {
+            mirror /mirror;
+
+            location /off {
+                mirror off;
+            }
+        }
+
+        location /many {
+            mirror /mirror/1;
+            mirror /mirror/2;
+        }
+
+        location /mirror {
+            log_subrequest on;
+            access_log test$args.log test;
+        }
+    }
+}
+
+EOF
+
+$t->write_file('index.html', '');
+$t->write_file('many', '');
+$t->write_file('off', '');
+$t->try_run('no mirror')->plan(8);
+
+###############################################################################
+
+like(http_get('/index.html?1'), qr/200 OK/, 'request');
+like(http_get('/?2'), qr/200 OK/, 'internal redirect');
+like(http_get('/off?3'), qr/200 OK/, 'mirror off');
+like(http_get('/many?4'), qr/200 OK/, 'mirror many');
+
+$t->stop();
+
+is($t->read_file('test1.log'), "/mirror\n", 'log - request');
+is($t->read_file('test2.log'), "/mirror\n/mirror\n", 'log - redirect');
+ok(!-e $t->testdir() . '/test3.log', 'log - mirror off');
+is($t->read_file('test4.log'), "/mirror/1\n/mirror/2\n", 'log - mirror many');
+
+###############################################################################
diff --git a/mirror_proxy.t b/mirror_proxy.t
new file mode 100644
index 0000000..bf904b7
--- /dev/null
+++ b/mirror_proxy.t
@@ -0,0 +1,111 @@
+#!/usr/bin/perl
+
+# (C) Sergey Kandaurov
+# (C) Nginx, Inc.
+
+# Tests for http mirror module and it's interaction with proxy.
+
+###############################################################################
+
+use warnings;
+use strict;
+
+use Test::More;
+
+BEGIN { use FindBin; chdir($FindBin::Bin); }
+
+use lib 'lib';
+use Test::Nginx;
+
+###############################################################################
+
+select STDERR; $| = 1;
+select STDOUT; $| = 1;
+
+my $t = Test::Nginx->new()->has(qw/http proxy mirror rewrite/);
+
+$t->write_file_expand('nginx.conf', <<'EOF');
+
+%%TEST_GLOBALS%%
+
+daemon off;
+
+events {
+}
+
+http {
+    %%TEST_GLOBALS_HTTP%%
+
+    log_format test $uri:$request_body;
+
+    server {
+        listen       127.0.0.1:8080;
+        server_name  localhost;
+
+        location / {
+            mirror /mirror;
+            proxy_pass http://127.0.0.1:8081;
+        }
+
+        location /off {
+            mirror /mirror/off;
+            mirror_request_body off;
+            proxy_pass http://127.0.0.1:8081;
+        }
+
+        location /mirror {
+            internal;
+            proxy_pass http://127.0.0.1:8082;
+        }
+    }
+
+    server {
+        listen       127.0.0.1:8081;
+        listen       127.0.0.1:8082;
+        server_name  localhost;
+
+        location / {
+            client_body_timeout 1s;
+            proxy_pass http://127.0.0.1:$server_port/return204;
+            access_log %%TESTDIR%%/test.log test;
+            add_header X-Body $request_body;
+        }
+
+        location /return204 {
+            return 204;
+        }
+    }
+}
+
+EOF
+
+$t->try_run('no mirror')->plan(6);
+
+###############################################################################
+
+like(http_post('/'), qr/X-Body: 1234567890\x0d?$/m, 'mirror proxy');
+like(http_post('/off'), qr/X-Body: 1234567890\x0d?$/m, 'mirror_request_body');
+
+$t->stop();
+
+my $log = $t->read_file('test.log');
+like($log, qr!^/:1234567890$!m, 'log - request body');
+like($log, qr!^/mirror:1234567890$!m, 'log - request body in mirror');
+like($log, qr!^/off:1234567890$!m, 'log - mirror_request_body off');
+like($log, qr!^/mirror/off:-$!m,, 'log - mirror_request_body off in mirror');
+
+###############################################################################
+
+sub http_post {
+	my ($url) = @_;
+
+	http(<<EOF);
+POST $url HTTP/1.0
+Host: localhost
+Content-Length: 10
+
+1234567890
+EOF
+}
+
+###############################################################################
