简单的HTTP代理/路由我的docker集装箱?

docker工的一个很酷的事情就是它可以很容易地启动不同的networking应用程序来testing它们。

所以我很快要在一台主机上运行几个(也许是10个)容器,我需要一个简单的方法来达到它们。

任何人都知道一个简单的方法来路由到不同的容器,基于子域或url?

这应该:

  • 在容器中运行(不在主机上)
  • 简单死了
  • 函数尽可能自动(如果你可以命名一个容器foo.bar.com,并自动将stream量发送给它,例如=会很好)
  • 易于从容器内自动化

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

(我现在正在对nginx做一个简单的包装,但是如果已经存在的话,我不想浪费我的时间。)

你也可以尝试一个基于nginx的基于lua的发行版,它允许你将所有请求dynamic地路由到一个redis数据库。 这样,您可以创build新的路线,而不会影响实际的连接。 请参阅网站上的DynamicRoutingBasedOnRedis示例。

你可以做更多的脚本与Lua加上nginx的稳定性。

对于相同的价格你有负载平衡,对于一个路由,你可以添加许多主机。

如果hipache看起来工作太多,可以尝试充满活力 。 看起来,创build一个独立的node.js应用程序并不会有太大的麻烦,它可以完成你使用这个模块所描述的function。 你可以像在任何其他node.js应用程序一样在docker容器中运行这个。

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

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

否则,你可以使用相当受欢迎的mailgun中的VulcanD ,尽pipe它看起来有些被遗弃了。