在Nginx中通过其主机名动态查找容器的地址

时间:2016-03-21 20:12:21

标签: nginx docker dns docker-networking

我目前正在尝试在一台主机上运行两个容器,一个是应用程序(Ruby on Rails),另一个是Nginx作为反向代理和缓存。该应用程序在TCP端口80上运行。我想要做的是关闭我的应用程序容器,删除它然后再次启动它而不必重新启动nginx。问题是Nginx似乎只查看容器的IP一次,所以如果它下降然后备份到不同的地址,那么Nginx会抱怨那里什么也没有。

我尝试了一些事情:

  • 使用resolver 127.0.0.11 valid=5使用Docker的DNS
  • 使用upstream
  • 使用变量尝试让nginx在运行时解析。

我不确定要查看的其他地方,但如果应用程序在不同的IP地址上运行,则这些选项都不起作用。我有什么东西不能让这个变得不可能吗?

感谢。

1 个答案:

答案 0 :(得分:1)

通过the 12 factor app结束阅读,这启发我完全删除了代表Rails上游的Nginx代理,而是将其用作具有外部DNS名称上游的代理缓存。