Bill Moseley wrote:
On Sat, Jun 30, 2007 at 11:56:44AM +0100, Richard Jones wrote:

You should not need to use ProxyPassReverse is using $c->uri_for for
 redirects.
OK, but I'm using uri_for in the templates to construct the URLs. Does
that amount to the same thing? I removed ProxyPassReverse from Apache's config but it hasn't changed behaviour.

However, the URLs constructed in the templates from Catalyst.uri_for pick up the port number, thus defeating the idea of ProxyPass.

You mean uri_for is generating links showing the port of the back end
 Catalyst server?
Yes, Apache on port 80 is ProxyPass'ing /myapp to
http://127.0.0.1:81/myapp. The URLS on first login are
http://127.0.0.1:81/myapp/register, http://127.0.0.1:81/myapp/search, etc.

Catalyst::Engine::Apache looks at X-Forwarded-Host header to set the host and port for the request object:

$host = $c->request->header( 'X-Forwarded-Host' );

if ( $host =~ /^(.+):(\d+)$/ ) { $host = $1; $port = $2;

Which ends up setting the request base, which is used in uri_for.
$c->log->info( Dumper $c->request->header( 'X-Forwarded-Host' ) ) in a
controller dumps an empty string. Is this correct?

Is your front end machine on the same host? If not you would likely need to set $c->config->{using_frontend_proxy} per the docs.
Yes, both Apache servers (:80 and :81) are on the same host. I've still
no idea what is wrong here.
--
Richard Jones
Leeds, UK
mailto:[EMAIL PROTECTED]

_______________________________________________
List: [email protected]
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/

Reply via email to