使用领事进行服务发现,nginx.conf文件未使用最新服务信息更新

时间:2020-04-16 17:51:40

标签: nginx consul service-discovery consul-template

全部

我们拥有一个基础架构,其中有1个领事服务器,2个ngnix Web服务器和2个应用程序服务器。应用服务器连接到领事注册服务。 Ngnix服务器将连接到领事,并使用nginx.ctmpl(consultemplate config)文件更新ngix.conf文件,以通过领事获得有关服务的最新信息。

我看到的问题是nginx.conf没有在2个nginx服务器上得到更新。以下是在每台服务器上运行的代理程序/服务: 领事服务器:

  • 领事
  • consultemplate

Ngix服务器:

  • nginx
  • consultemplate

应用服务器:

  • 领事

问题在这里:

  1. Nginx上的哪个代理/进程/服务将使用nginx.cmptl文件 用最新状态更新nginx.conf?
  2. 我的Nginx服务器上可能有什么问题?

2 个答案:

答案 0 :(得分:0)

Nginx不会直接利用该模板。 consul-template应该配置为使用nginx.cmptl来模板化配置,然后重新加载nginx。

有关此配置的示例,请参见Load Balancing with NGINX and Consul Template

您可以验证领事模板服务是否正在运行,并提供其可能正在生成的任何错误日志吗?

答案 1 :(得分:0)

问题已解决。我为Nginx服务器中的Consul重命名了数据目录,并运行了Chef-client。我重新创建了数据目录,Consul服务器能够识别两个Nginx服务器和两个应用程序服务器。一切恢复正常。