aboutsummaryrefslogtreecommitdiffstats
path: root/doc-src/features/reverseproxy.html
diff options
context:
space:
mode:
Diffstat (limited to 'doc-src/features/reverseproxy.html')
-rw-r--r--doc-src/features/reverseproxy.html26
1 files changed, 25 insertions, 1 deletions
diff --git a/doc-src/features/reverseproxy.html b/doc-src/features/reverseproxy.html
index 1c57f0b2..5ef4efc5 100644
--- a/doc-src/features/reverseproxy.html
+++ b/doc-src/features/reverseproxy.html
@@ -25,4 +25,28 @@ service uses HTTP like this:
https2http://hostname:port
-
+### Host Header
+
+In reverse proxy mode, mitmproxy does not rewrite the host header. While often useful, this
+may lead to issues with public web servers. For example, consider the following scenario:
+
+ $ python mitmdump -d -R http://example.com/ &
+ $ curl http://localhost:8080/
+
+ >> GET https://example.com/
+ Host: localhost:8080
+ User-Agent: curl/7.35.0
+ [...]
+
+ << 404 Not Found 345B
+
+Since the Host header doesn't match <samp>example.com</samp>, an error is returned.<br>
+There are two ways to solve this:
+<ol>
+ <li>Modify the hosts file of your OS so that example.com resolves to 127.0.0.1.</li>
+ <li>
+ Instruct mitmproxy to rewrite the host header by passing <kbd>&#8209;&#8209;setheader&nbsp;:~q:Host:example.com</kbd>.
+ However, keep in mind that absolute URLs within the returned document or HTTP redirects will cause the client application
+ to bypass the proxy.
+ </li>
+</ol> \ No newline at end of file