我目前正在尝试为具有生产、测试和开发阶段的域设置 Nginx。每个阶段都带有自己的部分 Nginx 配置文件(带重写)。
生产和测试阶段设置为 Git 存储库的分支,并在 Git 的接收后挂钩中自动重新加载这些配置。这一切都运行良好。
我希望使用 Netbeans 的“SFTP-on-save”通过 SFTP 传输开发阶段,因为我不需要这种粒度的版本控制,而且它更直接一些。但是,这里我没有 git 的 post-receive 钩子来触发 Nginx 在上传时重新加载配置。
在 Apache 中,.htaccess 文件只会动态加载。Nginx 中是否有类似的东西?或者我该如何模拟?理想的解决方案是仅在配置文件更改时立即重新加载。
答案1
如果您不能使用 post-receive 钩子,也许您可以用它来inotify
监视 nginx 配置中的变化。
在这种情况下,您可以使用incrond
和incrontab
来设置对指定文件的监视,以及当这些文件发生变化时要采取的操作。如下所示incrontab
:
/etc/nginx/nginx.conf IN_MODIFY /etc/init.d/nginx reload
这是incrontab 的手册页。您应该能够找到inotify
适合您的配置的工具集的其他文档和示例。
答案2
正如 cjc 所说,inotify
并且service nginx reload
是您正在寻找的命令。
查看这篇文章来自 nixCraft它对如何配置 inotify 给出了很好的解释。