【问题标题】:Giving external arguments to nginx.conf (and using if statements)为 nginx.conf 提供外部参数(并使用 if 语句)
【发布时间】:2013-04-26 14:55:14
【问题描述】:

如何在我的 nginx.conf 文件中进行系统特定的变化,以便我可以在我的开发机器和实时服务器上使用相同的文件?

nginx.conf 伪例子:

if system == mac then
  user _www;
else # ubuntu
  user www-data;
end
  1. 我可以在 Bash 中设置nginx.conf 可以读取的环境变量吗?如果是这样,阅读这些的语法是什么?
  2. 我可以使用nginx -g 选项来提供nginx 参数吗?如果是这样,它的命令行语法是什么,以及读取 nginx.conf 中的参数的语法是什么?

很抱歉问这个问题,但手册对这些主题有点含糊。

【问题讨论】:

  • 不要认为走这条路是明智的。这两台机器在某些方面会有所不同。在 Mac 上可以很好地复制东西很容易,但在 linux 机器上可能不行。我认为这会让你更加头疼。
  • 我明白你的意思,但是你必须在服务器上对本地文件执行每一次编辑,这似乎同样令人头疼。
  • 一切尽在小细节中。考虑以下(不是说它会影响你)。您已成功复制配置并且一切正常。出于某种原因,您想调整实时服务器上的一些设置。下次您复制“开发”配置时,这些编辑将丢失。也许你没有注意到。
  • 我永远不会直接编辑服务器配置,而是在本地编辑并同步它。前提是我可以重复使用该文件。
  • 您应该让您的部署脚本从一个充满占位符的文件中生成实际的 nginx conf:stackoverflow.com/questions/15416957/… Nginx 不会这样做 - 您需要编写自己的工具。

标签: nginx


【解决方案1】:

nginx.conf 似乎违背了 if 和变量的想法,我最终编写了一个小脚本,将 dev.conf 转换为 live.conf 作为部署的一部分。差异微乎其微,但却是必要的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-04
    • 2023-04-05
    • 1970-01-01
    • 2013-08-19
    • 2021-10-22
    相关资源
    最近更新 更多