Nginx的conf.d文件通过puppet

我正在试图确定在什么是木偶和什么是“应用程序”的一部分之间画线。 我有点困惑的地方是nginx conf.d文件。

在Apache中,我将这些文件标记为.htaccess,因此是应用程序的一部分。 但是,在nginx中没有.htaccess文件; 他们必须进入conf.d目录并且服务器退回。

不够公平,但是在打包应用程序和用puppet部署服务器configuration时,我发现服务器configuration和应用程序之间的界线比较模糊。

如果我把文件放在应用程序包(我们使用RPM),那么我在应用程序中有服务器configuration。 但是,如果我把这些文件放在puppet中,应用程序作者希望做一个修改(添加另一个位置,或者重写等),那么我必须更新puppet,现在下一个版本的应用程序依赖于puppet release 。

看起来像鸡和鸡蛋问题给我。 最适合放置这些conf.d文件的地方是puppet还是应用程序RPM?

我认为这里的正确答案是由商业考虑而不是技术驱动的。

一般来说,我的build议是:如果开发人员将这个文件作为应用程序的一部分来维护,那么他们应该将其作为应用程序的一部分打包并发送。 但是如果他们的改变打破了生产,他们也必须承担责任。

如果你维护这个文件,或者如果他们没有责任,如果他们打破生产,那么你应该维护文件,并把它放在傀儡。

但是,在nginx中没有.htaccess文件;

正确

他们必须进入conf.d目录并且服务器退回。

不正确; 他们可以去任何你想要的地方,你只需要包括这样的文件或整个目录:

您可以包含任何您想要的目的的configuration文件。 包括vhosts / *。conf;

不够公平,但是当涉及到打包应用程序和使用puppet部署服务器configuration时,我发现服务器configuration和应用程序之间的界线比较模糊

完全相反,因为一个不同的概念:使用.htaccess将应用程序和服务器configuration混合在一起,而在nginx-land中,通常让应用程序处理请求。 nginx作为服务于REST风格的URL的应用程序服务器的反向代理服务器,远远超过了像typo3这样的东西,而使用huuuge .htaccess来创build友好的url而不是/index.php?id=23&project=23&page=13&lang=fr


回到你的问题:迈克尔说什么,再加上(稍微OT):我们使用面料立即/互动的变化(傀儡运行间隔设置为15分钟),因为我们想要

  1. 一个部署过程和对这种变化的主动行动,这意味着:某人必须按下一个button
  2. 可以看到,检测和立即修复混帐,例如,当一个configurationtesting失败
  3. 通常将configuration更改推送到standy-server上进行testing,如果有效,则更新live-servers。

但是YMMV。