diff --git a/src/couchdb/couch_httpd_proxy.erl b/src/couchdb/couch_httpd_proxy.e index dec3f55..07a6a28 100644 --- a/src/couchdb/couch_httpd_proxy.erl +++ b/src/couchdb/couch_httpd_proxy.erl @@ -21,10 +21,11 @@ handle_proxy_req(Req, ProxyDest) -> + {_, DestUrl} = get_urls(Req, ProxyDest), Method = get_method(Req), Url = get_url(Req, ProxyDest), Version = get_version(Req), - Headers = get_headers(Req), + Headers = get_headers(Req) ++ [{"Host", DestUrl#url.host}], Body = get_body(Req), Options = [ {http_vsn, Version}, @@ -89,6 +90,8 @@ to_ibrowse_headers([{K, V} | Rest], Acc) when is_list(K) -> % This appears to make ibrowse too smart. %"transfer-encoding" -> % to_ibrowse_headers(Rest, [{transfer_encoding, V} | Acc]); + "host" -> + to_ibrowse_headers(Rest, Acc); _ -> to_ibrowse_headers(Rest, [{K, V} | Acc]) end.