You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@mesos.apache.org by Itamar Ostricher <it...@yowza3d.com> on 2015/08/02 08:10:08 UTC

Mesos-DNS host based HTTP-redirection from slave to container

I use marathon to launch a nginx-docker-container named "my-app", and set
up Mesos-DNS, such that "my-app.marathon.mesos" returns the IP of the slave
running the container (e.g. 10.20.30.40).

Now, "my-app" is running on some dynamically-allocated port (e.g. 31001),
but I would like http://my-app.marathon.mesos/foo to hit my app at
http://10.20.30.40:31001/foo

Is there a "best practice" way to achieve this behavior?

I was thinking about a proxy running on each slave, listening on port 80,
redirecting incoming HTTP requests based on the request host to the correct
port on localhost. The "correct port" can be determined by querying
mesos-dns itself.

This sounds like a pretty common use-case, so I wondered if anyone can
point me at an existing solution for this.

Thanks!
- Itamar.

Re: Mesos-DNS host based HTTP-redirection from slave to container

Posted by Itamar Ostricher <it...@yowza3d.com>.
what do you mean "only scales to one host"? I have multiple slaves, and I
plan to run it on every slave as a service (just like the mesos slave
service itself), probably outside of marathon.

On Wed, Aug 5, 2015 at 7:26 PM Shafay Latif <sl...@apple.com> wrote:

> But this nginx reverse proxy for docker only scales to one host. Can
> someone confirm if it has worked for multiple slaves?
>
> What is the most common engine everyone uses for load balancing an app
> with multiple tasks/docker containers?
>
>
> Shafay Latif
>
> On Aug 3, 2015, at 9:44 AM, Itamar Ostricher <it...@yowza3d.com> wrote:
>
> Thanks!
> I also found this automated nginx reverse proxy for docker -
> http://jasonwilder.com/blog/2014/03/25/automated-nginx-reverse-proxy-for-docker/
> Looks like a very similar process, that takes advantage of the docker
> events API.
> I think I was able to get it working.
> Ryan, how does this approach compares to bamboo?
> Thanks a lot!
>
> On Sun, Aug 2, 2015 at 1:21 PM Ryan Thomas <r....@gmail.com> wrote:
>
>> If you are going to be pulling data down yourself it would be better to
>> do it from marathon, than mesos-dns as you will have additional data about
>> the tasks available.
>>
>> On 2 August 2015 at 11:12, tommy xiao <xi...@gmail.com> wrote:
>>
>>> mesos-dns store the app's IP and ports. so you can query the mesos-dns
>>> to setup a route rule to define the url.
>>>
>>> 2015-08-02 17:51 GMT+08:00 Ryan Thomas <r....@gmail.com>:
>>>
>>>> Yes it appears that mesos-dns does use SRV records - I should really
>>>> check it out :)
>>>>
>>>> On 2 August 2015 at 10:50, Ryan Thomas <r....@gmail.com> wrote:
>>>>
>>>>> Hey Itamar,
>>>>>
>>>>> Using DNS to redirect to a port will only be possible if you're using
>>>>> SRV records (I'm not sure what mesos-dns uses) but this doesn't really
>>>>> matter as it won't be looked up by the browser.
>>>>>
>>>>> For this solution I have a small daemon written in go running on a
>>>>> number of hosts (that aren't slaves), this locates the marathon master, and
>>>>> pulls down my apps - I tag apps with a "Host" label (something like
>>>>> foo.example.com) and then I create a haproxy config file with
>>>>> backends directed by the host header. There's a few more smarts in it
>>>>> around only pulling apps with a green healthcheck etc.
>>>>>
>>>>> This daemon manages the lifecycle of haproxy on the node - it uses a
>>>>> polling model, not an event driven one from the marathon event stream.
>>>>>
>>>>> Another solution that uses the event-stream is this one
>>>>> https://github.com/QubitProducts/bamboo - it's been a while since I
>>>>> checked it out, but was functional back then.
>>>>>
>>>>> Hope that helps.
>>>>>
>>>>> ryan
>>>>>
>>>>> On 2 August 2015 at 07:10, Itamar Ostricher <it...@yowza3d.com>
>>>>> wrote:
>>>>>
>>>>>> I use marathon to launch a nginx-docker-container named "my-app", and
>>>>>> set up Mesos-DNS, such that "my-app.marathon.mesos" returns the IP of the
>>>>>> slave running the container (e.g. 10.20.30.40).
>>>>>>
>>>>>> Now, "my-app" is running on some dynamically-allocated port (e.g.
>>>>>> 31001), but I would like http://my-app.marathon.mesos/foo to hit my
>>>>>> app at http://10.20.30.40:31001/foo
>>>>>>
>>>>>> Is there a "best practice" way to achieve this behavior?
>>>>>>
>>>>>> I was thinking about a proxy running on each slave, listening on port
>>>>>> 80, redirecting incoming HTTP requests based on the request host to the
>>>>>> correct port on localhost. The "correct port" can be determined by querying
>>>>>> mesos-dns itself.
>>>>>>
>>>>>> This sounds like a pretty common use-case, so I wondered if anyone
>>>>>> can point me at an existing solution for this.
>>>>>>
>>>>>> Thanks!
>>>>>> - Itamar.
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>> --
>>> Deshi Xiao
>>> Twitter: xds2000
>>> E-mail: xiaods(AT)gmail.com
>>>
>>
>>

RE: Mesos-DNS host based HTTP-redirection from slave to container

Posted by David Kesler <DK...@yodle.com>.
We’ve been using Qubit’s Bamboo for the last few months without too many issues, though we had to heavily customize the haproxy config template to behave the way we wanted.  I’ve also heard good things about https://github.com/hashicorp/consul-template which seems more powerful and flexible, but does require also running consul.

From: Shafay Latif [mailto:slatif@apple.com]
Sent: Wednesday, August 05, 2015 12:26 PM
To: user@mesos.apache.org
Subject: Re: Mesos-DNS host based HTTP-redirection from slave to container

But this nginx reverse proxy for docker only scales to one host. Can someone confirm if it has worked for multiple slaves?

What is the most common engine everyone uses for load balancing an app with multiple tasks/docker containers?

Shafay Latif

On Aug 3, 2015, at 9:44 AM, Itamar Ostricher <it...@yowza3d.com>> wrote:
Thanks!
I also found this automated nginx reverse proxy for docker - http://jasonwilder.com/blog/2014/03/25/automated-nginx-reverse-proxy-for-docker/
Looks like a very similar process, that takes advantage of the docker events API.
I think I was able to get it working.
Ryan, how does this approach compares to bamboo?
Thanks a lot!

On Sun, Aug 2, 2015 at 1:21 PM Ryan Thomas <r....@gmail.com>> wrote:
If you are going to be pulling data down yourself it would be better to do it from marathon, than mesos-dns as you will have additional data about the tasks available.

On 2 August 2015 at 11:12, tommy xiao <xi...@gmail.com>> wrote:
mesos-dns store the app's IP and ports. so you can query the mesos-dns to setup a route rule to define the url.

2015-08-02 17:51 GMT+08:00 Ryan Thomas <r....@gmail.com>>:
Yes it appears that mesos-dns does use SRV records - I should really check it out :)

On 2 August 2015 at 10:50, Ryan Thomas <r....@gmail.com>> wrote:
Hey Itamar,

Using DNS to redirect to a port will only be possible if you're using SRV records (I'm not sure what mesos-dns uses) but this doesn't really matter as it won't be looked up by the browser.

For this solution I have a small daemon written in go running on a number of hosts (that aren't slaves), this locates the marathon master, and pulls down my apps - I tag apps with a "Host" label (something like foo.example.com<http://foo.example.com>) and then I create a haproxy config file with backends directed by the host header. There's a few more smarts in it around only pulling apps with a green healthcheck etc.

This daemon manages the lifecycle of haproxy on the node - it uses a polling model, not an event driven one from the marathon event stream.

Another solution that uses the event-stream is this one https://github.com/QubitProducts/bamboo - it's been a while since I checked it out, but was functional back then.

Hope that helps.

ryan

On 2 August 2015 at 07:10, Itamar Ostricher <it...@yowza3d.com>> wrote:
I use marathon to launch a nginx-docker-container named "my-app", and set up Mesos-DNS, such that "my-app.marathon.mesos" returns the IP of the slave running the container (e.g. 10.20.30.40).

Now, "my-app" is running on some dynamically-allocated port (e.g. 31001), but I would like http://my-app.marathon.mesos/foo to hit my app at http://10.20.30.40:31001/foo

Is there a "best practice" way to achieve this behavior?

I was thinking about a proxy running on each slave, listening on port 80, redirecting incoming HTTP requests based on the request host to the correct port on localhost. The "correct port" can be determined by querying mesos-dns itself.

This sounds like a pretty common use-case, so I wondered if anyone can point me at an existing solution for this.

Thanks!
- Itamar.





--
Deshi Xiao
Twitter: xds2000
E-mail: xiaods(AT)gmail.com<http://gmail.com>


Re: Mesos-DNS host based HTTP-redirection from slave to container

Posted by Shafay Latif <sl...@apple.com>.
But this nginx reverse proxy for docker only scales to one host. Can someone confirm if it has worked for multiple slaves?

What is the most common engine everyone uses for load balancing an app with multiple tasks/docker containers?

Shafay Latif

On Aug 3, 2015, at 9:44 AM, Itamar Ostricher <it...@yowza3d.com> wrote:

Thanks!
I also found this automated nginx reverse proxy for docker - http://jasonwilder.com/blog/2014/03/25/automated-nginx-reverse-proxy-for-docker/
Looks like a very similar process, that takes advantage of the docker events API.
I think I was able to get it working.
Ryan, how does this approach compares to bamboo?
Thanks a lot!

> On Sun, Aug 2, 2015 at 1:21 PM Ryan Thomas <r....@gmail.com> wrote:
> If you are going to be pulling data down yourself it would be better to do it from marathon, than mesos-dns as you will have additional data about the tasks available.
> 
>> On 2 August 2015 at 11:12, tommy xiao <xi...@gmail.com> wrote:
>> mesos-dns store the app's IP and ports. so you can query the mesos-dns to setup a route rule to define the url.
>> 
>> 2015-08-02 17:51 GMT+08:00 Ryan Thomas <r....@gmail.com>:
>>> Yes it appears that mesos-dns does use SRV records - I should really check it out :)
>>> 
>>>> On 2 August 2015 at 10:50, Ryan Thomas <r....@gmail.com> wrote:
>>>> Hey Itamar,
>>>> 
>>>> Using DNS to redirect to a port will only be possible if you're using SRV records (I'm not sure what mesos-dns uses) but this doesn't really matter as it won't be looked up by the browser.
>>>> 
>>>> For this solution I have a small daemon written in go running on a number of hosts (that aren't slaves), this locates the marathon master, and pulls down my apps - I tag apps with a "Host" label (something like foo.example.com) and then I create a haproxy config file with backends directed by the host header. There's a few more smarts in it around only pulling apps with a green healthcheck etc.
>>>> 
>>>> This daemon manages the lifecycle of haproxy on the node - it uses a polling model, not an event driven one from the marathon event stream.
>>>> 
>>>> Another solution that uses the event-stream is this one https://github.com/QubitProducts/bamboo - it's been a while since I checked it out, but was functional back then.
>>>> 
>>>> Hope that helps.
>>>> 
>>>> ryan
>>>> 
>>>>> On 2 August 2015 at 07:10, Itamar Ostricher <it...@yowza3d.com> wrote:
>>>>> I use marathon to launch a nginx-docker-container named "my-app", and set up Mesos-DNS, such that "my-app.marathon.mesos" returns the IP of the slave running the container (e.g. 10.20.30.40).
>>>>> 
>>>>> Now, "my-app" is running on some dynamically-allocated port (e.g. 31001), but I would like http://my-app.marathon.mesos/foo to hit my app at http://10.20.30.40:31001/foo
>>>>> 
>>>>> Is there a "best practice" way to achieve this behavior?
>>>>> 
>>>>> I was thinking about a proxy running on each slave, listening on port 80, redirecting incoming HTTP requests based on the request host to the correct port on localhost. The "correct port" can be determined by querying mesos-dns itself.
>>>>> 
>>>>> This sounds like a pretty common use-case, so I wondered if anyone can point me at an existing solution for this.
>>>>> 
>>>>> Thanks!
>>>>> - Itamar.
>> 
>> 
>> 
>> -- 
>> Deshi Xiao
>> Twitter: xds2000
>> E-mail: xiaods(AT)gmail.com

Re: Mesos-DNS host based HTTP-redirection from slave to container

Posted by Itamar Ostricher <it...@yowza3d.com>.
Thanks!
I also found this automated nginx reverse proxy for docker -
http://jasonwilder.com/blog/2014/03/25/automated-nginx-reverse-proxy-for-docker/
Looks like a very similar process, that takes advantage of the docker
events API.
I think I was able to get it working.
Ryan, how does this approach compares to bamboo?
Thanks a lot!

On Sun, Aug 2, 2015 at 1:21 PM Ryan Thomas <r....@gmail.com> wrote:

> If you are going to be pulling data down yourself it would be better to do
> it from marathon, than mesos-dns as you will have additional data about the
> tasks available.
>
> On 2 August 2015 at 11:12, tommy xiao <xi...@gmail.com> wrote:
>
>> mesos-dns store the app's IP and ports. so you can query the mesos-dns
>> to setup a route rule to define the url.
>>
>> 2015-08-02 17:51 GMT+08:00 Ryan Thomas <r....@gmail.com>:
>>
>>> Yes it appears that mesos-dns does use SRV records - I should really
>>> check it out :)
>>>
>>> On 2 August 2015 at 10:50, Ryan Thomas <r....@gmail.com> wrote:
>>>
>>>> Hey Itamar,
>>>>
>>>> Using DNS to redirect to a port will only be possible if you're using
>>>> SRV records (I'm not sure what mesos-dns uses) but this doesn't really
>>>> matter as it won't be looked up by the browser.
>>>>
>>>> For this solution I have a small daemon written in go running on a
>>>> number of hosts (that aren't slaves), this locates the marathon master, and
>>>> pulls down my apps - I tag apps with a "Host" label (something like
>>>> foo.example.com) and then I create a haproxy config file with backends
>>>> directed by the host header. There's a few more smarts in it around only
>>>> pulling apps with a green healthcheck etc.
>>>>
>>>> This daemon manages the lifecycle of haproxy on the node - it uses a
>>>> polling model, not an event driven one from the marathon event stream.
>>>>
>>>> Another solution that uses the event-stream is this one
>>>> https://github.com/QubitProducts/bamboo - it's been a while since I
>>>> checked it out, but was functional back then.
>>>>
>>>> Hope that helps.
>>>>
>>>> ryan
>>>>
>>>> On 2 August 2015 at 07:10, Itamar Ostricher <it...@yowza3d.com> wrote:
>>>>
>>>>> I use marathon to launch a nginx-docker-container named "my-app", and
>>>>> set up Mesos-DNS, such that "my-app.marathon.mesos" returns the IP of the
>>>>> slave running the container (e.g. 10.20.30.40).
>>>>>
>>>>> Now, "my-app" is running on some dynamically-allocated port (e.g.
>>>>> 31001), but I would like http://my-app.marathon.mesos/foo to hit my
>>>>> app at http://10.20.30.40:31001/foo
>>>>>
>>>>> Is there a "best practice" way to achieve this behavior?
>>>>>
>>>>> I was thinking about a proxy running on each slave, listening on port
>>>>> 80, redirecting incoming HTTP requests based on the request host to the
>>>>> correct port on localhost. The "correct port" can be determined by querying
>>>>> mesos-dns itself.
>>>>>
>>>>> This sounds like a pretty common use-case, so I wondered if anyone can
>>>>> point me at an existing solution for this.
>>>>>
>>>>> Thanks!
>>>>> - Itamar.
>>>>>
>>>>
>>>>
>>>
>>
>>
>> --
>> Deshi Xiao
>> Twitter: xds2000
>> E-mail: xiaods(AT)gmail.com
>>
>
>

Re: Mesos-DNS host based HTTP-redirection from slave to container

Posted by Ryan Thomas <r....@gmail.com>.
If you are going to be pulling data down yourself it would be better to do
it from marathon, than mesos-dns as you will have additional data about the
tasks available.

On 2 August 2015 at 11:12, tommy xiao <xi...@gmail.com> wrote:

> mesos-dns store the app's IP and ports. so you can query the mesos-dns to
> setup a route rule to define the url.
>
> 2015-08-02 17:51 GMT+08:00 Ryan Thomas <r....@gmail.com>:
>
>> Yes it appears that mesos-dns does use SRV records - I should really
>> check it out :)
>>
>> On 2 August 2015 at 10:50, Ryan Thomas <r....@gmail.com> wrote:
>>
>>> Hey Itamar,
>>>
>>> Using DNS to redirect to a port will only be possible if you're using
>>> SRV records (I'm not sure what mesos-dns uses) but this doesn't really
>>> matter as it won't be looked up by the browser.
>>>
>>> For this solution I have a small daemon written in go running on a
>>> number of hosts (that aren't slaves), this locates the marathon master, and
>>> pulls down my apps - I tag apps with a "Host" label (something like
>>> foo.example.com) and then I create a haproxy config file with backends
>>> directed by the host header. There's a few more smarts in it around only
>>> pulling apps with a green healthcheck etc.
>>>
>>> This daemon manages the lifecycle of haproxy on the node - it uses a
>>> polling model, not an event driven one from the marathon event stream.
>>>
>>> Another solution that uses the event-stream is this one
>>> https://github.com/QubitProducts/bamboo - it's been a while since I
>>> checked it out, but was functional back then.
>>>
>>> Hope that helps.
>>>
>>> ryan
>>>
>>> On 2 August 2015 at 07:10, Itamar Ostricher <it...@yowza3d.com> wrote:
>>>
>>>> I use marathon to launch a nginx-docker-container named "my-app", and
>>>> set up Mesos-DNS, such that "my-app.marathon.mesos" returns the IP of the
>>>> slave running the container (e.g. 10.20.30.40).
>>>>
>>>> Now, "my-app" is running on some dynamically-allocated port (e.g.
>>>> 31001), but I would like http://my-app.marathon.mesos/foo to hit my
>>>> app at http://10.20.30.40:31001/foo
>>>>
>>>> Is there a "best practice" way to achieve this behavior?
>>>>
>>>> I was thinking about a proxy running on each slave, listening on port
>>>> 80, redirecting incoming HTTP requests based on the request host to the
>>>> correct port on localhost. The "correct port" can be determined by querying
>>>> mesos-dns itself.
>>>>
>>>> This sounds like a pretty common use-case, so I wondered if anyone can
>>>> point me at an existing solution for this.
>>>>
>>>> Thanks!
>>>> - Itamar.
>>>>
>>>
>>>
>>
>
>
> --
> Deshi Xiao
> Twitter: xds2000
> E-mail: xiaods(AT)gmail.com
>

Re: Mesos-DNS host based HTTP-redirection from slave to container

Posted by tommy xiao <xi...@gmail.com>.
mesos-dns store the app's IP and ports. so you can query the mesos-dns to
setup a route rule to define the url.

2015-08-02 17:51 GMT+08:00 Ryan Thomas <r....@gmail.com>:

> Yes it appears that mesos-dns does use SRV records - I should really check
> it out :)
>
> On 2 August 2015 at 10:50, Ryan Thomas <r....@gmail.com> wrote:
>
>> Hey Itamar,
>>
>> Using DNS to redirect to a port will only be possible if you're using SRV
>> records (I'm not sure what mesos-dns uses) but this doesn't really matter
>> as it won't be looked up by the browser.
>>
>> For this solution I have a small daemon written in go running on a number
>> of hosts (that aren't slaves), this locates the marathon master, and pulls
>> down my apps - I tag apps with a "Host" label (something like
>> foo.example.com) and then I create a haproxy config file with backends
>> directed by the host header. There's a few more smarts in it around only
>> pulling apps with a green healthcheck etc.
>>
>> This daemon manages the lifecycle of haproxy on the node - it uses a
>> polling model, not an event driven one from the marathon event stream.
>>
>> Another solution that uses the event-stream is this one
>> https://github.com/QubitProducts/bamboo - it's been a while since I
>> checked it out, but was functional back then.
>>
>> Hope that helps.
>>
>> ryan
>>
>> On 2 August 2015 at 07:10, Itamar Ostricher <it...@yowza3d.com> wrote:
>>
>>> I use marathon to launch a nginx-docker-container named "my-app", and
>>> set up Mesos-DNS, such that "my-app.marathon.mesos" returns the IP of the
>>> slave running the container (e.g. 10.20.30.40).
>>>
>>> Now, "my-app" is running on some dynamically-allocated port (e.g.
>>> 31001), but I would like http://my-app.marathon.mesos/foo to hit my app
>>> at http://10.20.30.40:31001/foo
>>>
>>> Is there a "best practice" way to achieve this behavior?
>>>
>>> I was thinking about a proxy running on each slave, listening on port
>>> 80, redirecting incoming HTTP requests based on the request host to the
>>> correct port on localhost. The "correct port" can be determined by querying
>>> mesos-dns itself.
>>>
>>> This sounds like a pretty common use-case, so I wondered if anyone can
>>> point me at an existing solution for this.
>>>
>>> Thanks!
>>> - Itamar.
>>>
>>
>>
>


-- 
Deshi Xiao
Twitter: xds2000
E-mail: xiaods(AT)gmail.com

Re: Mesos-DNS host based HTTP-redirection from slave to container

Posted by Ryan Thomas <r....@gmail.com>.
Yes it appears that mesos-dns does use SRV records - I should really check
it out :)

On 2 August 2015 at 10:50, Ryan Thomas <r....@gmail.com> wrote:

> Hey Itamar,
>
> Using DNS to redirect to a port will only be possible if you're using SRV
> records (I'm not sure what mesos-dns uses) but this doesn't really matter
> as it won't be looked up by the browser.
>
> For this solution I have a small daemon written in go running on a number
> of hosts (that aren't slaves), this locates the marathon master, and pulls
> down my apps - I tag apps with a "Host" label (something like
> foo.example.com) and then I create a haproxy config file with backends
> directed by the host header. There's a few more smarts in it around only
> pulling apps with a green healthcheck etc.
>
> This daemon manages the lifecycle of haproxy on the node - it uses a
> polling model, not an event driven one from the marathon event stream.
>
> Another solution that uses the event-stream is this one
> https://github.com/QubitProducts/bamboo - it's been a while since I
> checked it out, but was functional back then.
>
> Hope that helps.
>
> ryan
>
> On 2 August 2015 at 07:10, Itamar Ostricher <it...@yowza3d.com> wrote:
>
>> I use marathon to launch a nginx-docker-container named "my-app", and set
>> up Mesos-DNS, such that "my-app.marathon.mesos" returns the IP of the slave
>> running the container (e.g. 10.20.30.40).
>>
>> Now, "my-app" is running on some dynamically-allocated port (e.g. 31001),
>> but I would like http://my-app.marathon.mesos/foo to hit my app at
>> http://10.20.30.40:31001/foo
>>
>> Is there a "best practice" way to achieve this behavior?
>>
>> I was thinking about a proxy running on each slave, listening on port 80,
>> redirecting incoming HTTP requests based on the request host to the correct
>> port on localhost. The "correct port" can be determined by querying
>> mesos-dns itself.
>>
>> This sounds like a pretty common use-case, so I wondered if anyone can
>> point me at an existing solution for this.
>>
>> Thanks!
>> - Itamar.
>>
>
>

Re: Mesos-DNS host based HTTP-redirection from slave to container

Posted by Ryan Thomas <r....@gmail.com>.
Hey Itamar,

Using DNS to redirect to a port will only be possible if you're using SRV
records (I'm not sure what mesos-dns uses) but this doesn't really matter
as it won't be looked up by the browser.

For this solution I have a small daemon written in go running on a number
of hosts (that aren't slaves), this locates the marathon master, and pulls
down my apps - I tag apps with a "Host" label (something like
foo.example.com) and then I create a haproxy config file with backends
directed by the host header. There's a few more smarts in it around only
pulling apps with a green healthcheck etc.

This daemon manages the lifecycle of haproxy on the node - it uses a
polling model, not an event driven one from the marathon event stream.

Another solution that uses the event-stream is this one
https://github.com/QubitProducts/bamboo - it's been a while since I checked
it out, but was functional back then.

Hope that helps.

ryan

On 2 August 2015 at 07:10, Itamar Ostricher <it...@yowza3d.com> wrote:

> I use marathon to launch a nginx-docker-container named "my-app", and set
> up Mesos-DNS, such that "my-app.marathon.mesos" returns the IP of the slave
> running the container (e.g. 10.20.30.40).
>
> Now, "my-app" is running on some dynamically-allocated port (e.g. 31001),
> but I would like http://my-app.marathon.mesos/foo to hit my app at
> http://10.20.30.40:31001/foo
>
> Is there a "best practice" way to achieve this behavior?
>
> I was thinking about a proxy running on each slave, listening on port 80,
> redirecting incoming HTTP requests based on the request host to the correct
> port on localhost. The "correct port" can be determined by querying
> mesos-dns itself.
>
> This sounds like a pretty common use-case, so I wondered if anyone can
> point me at an existing solution for this.
>
> Thanks!
> - Itamar.
>