I have a need to transform the following url (not on the client/browser, but rather between the frontend
and backend
):
from:
http://myhost.com/opt-in/<some_long_guid>.html
to:
http://myhost.com/api/distributions/<some_long_guid>/opt-in
And then at this point choose an appropriate backend. My haproxy.conf
file looks like so:
frontend www-ssl
#re-write the url from /opt-in/<dist_id>.html to /api/distributions/<dist_id>/opt-in
acl url_opt-in path_beg /opt-in
reqrep ^([^\ :]*)\ /opt-in/(.*)\.html \1\ /api/distributions/\2/opt-in if url_opt-in
acl url_api path_beg /api/
#choose the api backend if the path starts with /api
use_backend api-backend if prod url_api
backend api-backend
server app-1 10.132.93.224:8080 check
#get rid of the /api part when forwarding to the backend
reqrep ^([^\ :]*)\ /api/(.*) \1\ /\2
I have confirmed that hitting http://myhost.com/api/distributions/<some_long_guid>/opt-in
directly works.
However hitting http://myhost.com/opt-in/<some_long_guid>.html
gives a 505 - The server does not support the HTTP protocol version used in the request.
Can anyone see why I might be facing this problem?
EDIT: I confirmed that my backend is receiving the request and it is reporting back this 505. I'm trying to see if I can dump the raw-request to see what's happening.