You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stratos.apache.org by Imesh Gunaratne <im...@apache.org> on 2014/05/29 19:59:34 UTC

[Discuss] Improve Domain Mappings Functionality to Re-Write URLs in Load Balancer

Hi All,

In current Domain Mappings implementation Stratos allows to add domain
mappings to service subscriptions with following parameters: cartridgeType,
subscriptionAlias, list of <domainName, appContext>.

Stratos Manager sends this information to load balancers via the message
broker. Load balancer keeps domainName in a hash map against its cluster,
once a request is received, the cluster is fetched and request is delegated
to the next available member in that cluster without touching the request
path. In the member a Tomcat virtual host could be created with the
appContext to map the incoming request path to actual application path.

However this design might not work with different types of services which
may not be able to use Tomcat virtual hosts. More importantly URL mapping
functionality needed to be implemented in each and every service.

Therefore we could overcome this problem by introducing a new functionality
in load balancer to map URLs and directly delegate the incoming requests to
the member applications.

Incoming request:
https://foo.org/some/file/path?someQueryParam=value

Application Path:
/tenant/foo.org/app-name/version

LB re-writes it to:
https://member-ip:port/tenant/
foo.org/app-name/version/some/file/path/?someQueryParam=value

WDYT?

Thanks


-- 
Imesh Gunaratne

Technical Lead, WSO2
Committer & PPMC Member, Apache Stratos