我在Windows上安装了nginx并在我的http根目录中放了一个nginx.conf
,但似乎没有包含此路径,我可以通过包含c:/http_default/nginx.conf
来包含它,但我希望nginx能够自动包含包含当前工作目录的任何nginx.conf
。示例:对于http://mydomain.com/test/index.php
,我希望包含c:/http_default/test/nginx.conf
。
答案 0 :(得分:2)
您最好的选择是首先使用标准化的目录结构(例如c:\ www \ example.com)。然后在每个站点目录中都有一个根目录和conf文件。然后,您将在主要的nginx.conf http {} 部分中使用它。
include c:/www/*/conf/nginx.conf;
然后,当您启动或向nginx发出重新加载时,将加载每个站点的nginx.conf。因此,如果您有一个站点的这两个路径,那么您将被设置。
c:\www\example.com\conf\
c:\www\example.com\htdocs\
Web文件进入 htdocs , nginx.conf 进入conf。就这么简单。
我从未在Windows上使用过nginx,因此我假设它的'conf使用正斜杠,如* nix。
答案 1 :(得分:2)
有一个名为incron的程序,一个“inotify cron”系统。它以极低的成本检测文件更改:inotify。
安装incron,例如apt-get install -y incron
编辑incrontab incrontab -e
添加/var/www/site1/nginx.conf IN_MODIFY,IN_NO_LOOP /usr/local/sbin/nginx-reload.sh
调整您的webroot,将webroot设置为sitename / server并将此nginx.conf放入用户名dir
shell脚本使用flock
等待之前的重新加载
flock -x "/var/lock/nginx-reload" -c nginx-reload-worker.sh
logger -t "nginx-reload[$$]" "Reloading OK"
工作脚本将每次重新加载延迟5秒
sleep 5
service nginx reload || error 2 "nginx reload error"