我的docker容器的简单HTTP代理/路由?

时间:2014-01-23 17:48:03

标签: docker

Docker的一个很酷的事情是,它可以很容易地启动不同的网络应用程序来测试它们。

所以我很快就会在一台主机上运行一些(可能是~10个)容器,我需要一种简单的方法来接触它们。

根据子域名或网址,任何人都知道简单路由到不同容器的方式吗?

它应该:

  • 在容器中运行(不在主机上)
  • 简直死了
  • 尽可能自动运行(如果您可以将容器命名为foo.bar.com并自动向其发送流量,那将会很好,例如=)
  • 容易在容器内自动化

任何人都知道这样简单的事吗? Hipache似乎有点矫枉过正,而且我的工作太多了。

(我现在正在围绕nginx制作一个简单的包装器,但如果已经存在某些东西,我不想浪费我的时间......)

3 个答案:

答案 0 :(得分:1)

如果臀部看起来工作太多,你可以试试bouncy。看起来创建一个独立的node.js应用程序,使用此模块执行您所描述的内容似乎并不会太麻烦。你可以在docker容器中运行它,就像任何其他node.js应用程序一样。

答案 1 :(得分:1)

您还可以尝试openresty基于nginx lua的发行版,它允许您动态地路由与redis数据库耦合的所有请求。这样,您可以创建新路由而不会影响实际连接。请参阅网站上的DynamicRoutingBasedOnRedis示例。

使用Lua编写所有内容以及nginx的稳定性时,您可以执行更多操作。

对于相同价格的负载均衡,对于路由,您可以添加许多主机。

答案 2 :(得分:0)

为什么不编写自己的自动http代理来监听Docker事件并相应地更新路由规则?

我写了一个关于如何使用Node.js https://memz.co/api-gateway-microservices-docker-node-js/完成它的简单教程。

否则,您可以使用非常受欢迎的 mailgun 中的VulcanD,尽管它似乎有点放弃。