:preserve_host, when set to true, causes the Host header to be overridden, not to be preserved, unlike Apache's ProxyPreserveHost, which has the semantics you would expect.
In other words, given Rack app A reverse-proxying to B, with :preserve_host => false, it will send "Host: A", and with :preserve_host => true, it will send "Host: B".
It should be the other way around, i.e. false sends B and true sends A, so that the option means what it says, and to be consistent with Apache.
The default should probably be to not preserve the host, like Apache. (I'm not sure about the current default...)
:preserve_host, when set to true, causes the Host header to be overridden, not to be preserved, unlike Apache's ProxyPreserveHost, which has the semantics you would expect.
In other words, given Rack app A reverse-proxying to B, with :preserve_host => false, it will send "Host: A", and with :preserve_host => true, it will send "Host: B".
It should be the other way around, i.e. false sends B and true sends A, so that the option means what it says, and to be consistent with Apache.
The default should probably be to not preserve the host, like Apache. (I'm not sure about the current default...)