Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I'd like to configure apache so that http://my-domain.com/myapp serves a Python webapp running in CherryPy on a backend server.

Here's what's in the vhost:

    RewriteRule ^/myapp/?(.*) http://backend-server:8000/$1 [P]
    ProxyPassReverse /myapp/ http://backend-server:8000/

When I trace the request/response, I see:

GET /myapp HTTP/1.1
Host: my-domain.com

And then:

HTTP/1.1 303 See Other
Date: Thu, 15 Sep 2011 21:46:35 GMT
Server: CherryPy/3.1.2
Content-Type: text/html;charset=utf-8
Location: http://my-domain.com/somwhere-else/

As you can see, the CherryPy webapp sends a 303 redirect to /somewhere-else/

Any ideas why the Apache ProxyPassReverse doesn't transform the Location to http://my-domain.com/myapp/somewhere-else?

share|improve this question

1 Answer 1

Your source location is /myapp, while your ProxyPassReverse is for /myapp/; context of the proxied location doesn't match, so the ProxyPassReverse doesn't apply.

Why the mod_rewrite proxy? This should accomplish the same, and have no trailing slash consistency issues:

ProxyPass /myapp http://backend-server:8000
ProxyPassReverse /myapp http://backend-server:8000
share|improve this answer
    
Thanks much for the reply. I tried your suggestion, but, unfortunately, I'm seeing the same response. Perhaps I'm missing some other Apache directive? I'll keep digging.... –  Dave Paroulek Sep 15 '11 at 23:41
    
@Dave CherryPy might be getting sensitive about the Host: header - try adding ProxyPreserveHost on. Still, Apache should catch and translate that redirect, unless it doesn't think it should; is there anything different about the new URL versus the old? Host name (is there a www?), port, protocol - any difference in these things to the original request will cause Apache to leave the Location: header alone. –  Shane Madden Sep 16 '11 at 0:47

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.