On 11/10/12 00:34, Stephen Shorrock wrote:
I'm trying to run an application behind a frontend proxy where the path at the front end is not route:config on frontend.mydomain.ac.uk <Location /CUFSE> RewriteEngine On RewriteCond %{REMOTE_USER} (.+) RewriteRule . - [E=RU:%1] RequestHeader set REMOTE_USER %{RU}e RequestHeader set X-Forwarded-Path '/CUFSE' ProxyPass http://backend.mydomain.ac.uk:5000/ ProxyPassReverse http://backend.mydomain.ac.uk:5000/ </Location> On the backend my application is run via starman and has contained in its configuration: __PACKAGE__->config( name => 'CUFSE', using_frontend_proxy => 1, ... I would there for expect that when calling $c->uri_for('some/path') I would get: http://frontend.mydomain.ac.uk/CUFSE/some/path but the frontend portion of the path is not there instead I only have: http://frontend.mydomain.ac.uk/some/path I've attempted to grep all Perl modules for /X[_-]Forwarded[_-]Path/i but with no joy.
[..]
(source of method: http://wiki.catalystframework.org/wiki/wikicookbook/frontendproxy)
A belated plug for Plack::Middleware::ReverseProxyPath (although it sounds like your problem is solved). http://search.cpan.org/~bowmanbs/Plack-Middleware-ReverseProxyPath-0.03/lib/Plack/Middleware/ReverseProxyPath.pm I've not tried using this with Catalyst, but it's PSGI middleware so should be fine. I use the following header names: X-Forwarded-Script-Name The front-end prefix being forwarded FROM. This is the replacement. The value of SCRIPT_NAME on the front-end. X-Traversal-Path The back-end prefix being forwarded TO. This is to be replaced. This is the part of the back-end URI that is just plumbing which should be hidden from the app. X-Forwarded-Script-Name follows the X-Forwarded-* pattern established by other headers (the SCRIPT_NAME on the front end) and matches PSGI names. X-Traversal-Path was inspired by a similar Python/wsgi middleware. However, I'd like to use the defacto standard names, if they exist. Is X-Forwarded-Path in common use? I might also add support for X-Request-Base and a combined middleware similar to Catalyst::TraitFor::Request::ProxyBase, thanks for the inspiration. Brad _______________________________________________ List: [email protected] Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/[email protected]/ Dev site: http://dev.catalyst.perl.org/
