[Dancer-users] strangeness with Dancer prefix and apache proxy

Tiago Quintela kintela at gmail.com
Sun Feb 5 22:38:37 CET 2012


Hi, i had your trailing slash problem this week and i just corrected my
handler regexs to something like '/foo\/?', so that you don't get the 404.
As far as i know, Apache proxypassreverse handles the problem with a 302.

For example, an HTTP redirection often takes place when a user (or author)
forgets a trailing slash in a URL. So the response to a request for
http://www.example.com/app1/foo proxies to
http://internal.example.com/foowhich generates a response:


        HTTP/1.1 302 Found
        Location: http://internal.example.com/foo/
        (etc)

But from the outside world, the net effect of this is a "No such host"
error. The proxy needs to re-map the Location header to its own address
space and return a valid URL


        HTTP/1.1 302 Found
        Location: http://www.example.com/app1/foo/

The command to enable such rewrites in the HTTP Headers is
ProxyPassReverse. The Apache documentation suggests the form:

src- http://www.apachetutor.org/admin/reverseproxies

regards,
-- 
Tiago Quintela

On 5 February 2012 21:00, Puneet Kishor <punk.kish at gmail.com> wrote:

> I have the following in my apache2 conf file
>
>    <VirtualHost *:80>
>        ServerName my.computer.edu
>        DocumentRoot "/path/to/Sites"
>
>        <Proxy *>
>            Options FollowSymLinks MultiViews
>            AllowOverride All
>            Order allow,deny
>            allow from all
>        </Proxy>
>
>        SetEnv force-proxy-request-1.0 1
>        SetEnv proxy-nokeepalive 1
>        ProxyPreserveHost On
>
>        ProxyPass        /d/apps http://127.0.0.1:25012
>        ProxyPassReverse /d/apps http://127.0.0.1:25012
>    </VirtualHost>
>
> When I go to http://my.computer.edu/d/apps/js/app.js the log shows
>    request: GET //js/app.js from 127.0.0.1 in ../Dancer/Handler.pm l. 52
>
> When I go to http://127.0.0.1:25012/js/app.js the log shows
>    request: GET /js/app.js from 127.0.0.1 in ../Dancer/Handler.pm l. 52
>
> Why do I get to leading slashes in the first request above?
>
> Additionally, when I go to http://my.computer.edu/d/apps I get a correct
> response (the double slashes notwithstanding). However, when I go to
> http://my.computer.edu/d/apps/foo then I get a 404. My perl code is like
> so
>
>    package apps;
>
>    use Dancer ':syntax';
>    use Dancer::Plugin::Database;
>
>    load_app 'eb', prefix => '/foo';
>
> --
> Puneet Kishor
> _______________________________________________
> Dancer-users mailing list
> Dancer-users at perldancer.org
> http://www.backup-manager.org/cgi-bin/listinfo/dancer-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.backup-manager.org/pipermail/dancer-users/attachments/20120205/b3ac93ae/attachment.htm>


More information about the Dancer-users mailing list