|Just another Perl shrine|
Catalyst with Apache and proxy passing: setting the URL in the appby tospo (Hermit)
|on Jul 06, 2011 at 10:10 UTC||Need Help??|
I'm posting this here for others to find because it took me quite a while to find this one myself.
Front-end server --ProxyPass rules--> back-end server --> Catalyst FCGI server
In my case, the front-end and back-end servers are two separate instances of Apache on the same host, but they could also be on separate hosts
the front-end server uses ProxyPass rules to forward requests to the back-end server on the same host. from the Catalyst app's point of view, requests have been made to localhost:SOME-PORT, and if you are using default config settings, that is the domain that will now appear in the URLs generated by the 'uri_for' method, so all your links will be to localhost:SOME-PORT/some_page.
It is actually quite easy (once you have found it...) to get rid of this problem. Simply put
In your app's config file to force Catalyst to parse request headers and look for the originally requested URL. It will then set the base_url accordingly.
See here for details.