如何配置nginx以读取当前工作目录中的nginx.conf?
我在Windows上嵌入了nginx,并在我的http根目录中放置了一个如何配置nginx以读取当前工作目录中的nginx.conf?,nginx,Nginx,我在Windows上嵌入了nginx,并在我的http根目录中放置了一个nginx.conf,但似乎没有包含此路径,我可以通过包含c:/http\u default/nginx.conf来包含它,但我希望nginx自动为当前工作目录包含任何nginx.conf。示例:对于http://mydomain.com/test/index.php,我希望包含c:/http\u default/test/nginx.conf。您最好的选择是首先使用标准化的目录结构(例如c:\www\example.com
nginx.conf
,但似乎没有包含此路径,我可以通过包含c:/http\u default/nginx.conf
来包含它,但我希望nginx自动为当前工作目录包含任何nginx.conf
。示例:对于http://mydomain.com/test/index.php
,我希望包含c:/http\u default/test/nginx.conf
。您最好的选择是首先使用标准化的目录结构(例如c:\www\example.com)。然后在每个站点目录中都有一个根目录和conf文件目录。然后您将在主nginx.confhttp{}部分中使用它
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这样的正斜杠。有一个叫做incron的程序,一个“inotify cron”系统。它检测文件更改的成本非常低:
- 安装incron,例如,
apt get install-y incron
- 编辑incrontab
incrontab-e
- 在\u MODIFY中添加
/var/www/site1/nginx.conf,在\u NO\u LOOP/usr/local/sbin/nginx reload.sh中调整您的webroot,将webroot设置为sitename/server并将此nginx.conf放入username目录中更安全
- shell脚本使用
等待上一次重新加载flock
flock-x”/var/lock/nginx-reload“-c nginx-reload-worker.sh 记录器-t“nginx重新加载[$$]”“重新加载正常”
- 辅助脚本将每次重新加载延迟5秒
sleep 5 服务nginx重新加载| |错误2“nginx重新加载错误”
在中查看所有这些,我不明白您为什么需要这样做。为什么不为测试创建一个行为不同的位置块呢?另一个解决方案是使用一个不同的子域(然后nginx可以使用不同的虚拟服务器来处理测试请求),我在ab big项目中工作,它与Apache一起工作。它的文件夹中有很多.htaccess,因为它是一个CMS,并且有插件,每个插件可能都有自己的.htaccess,我可以将.htaccess翻译成nginx.conf,但我需要将每个nginx放到它的文件夹中。a.htaccess不会翻译成新的nginx.conf。它转换为nginx位置块。Nginx允许您基于某些位置(它基本上插入文件的内容)包含其他配置,但不允许您拥有超过1个主配置。我不知道Nginx的windows版本(我在linux上使用它),但Nginx二进制文件上有一个“重新加载”选项。“重新加载”选项位于二进制文件中,而不是nginx.conf文件。我执行命令sudo/usr/sbin/nginx-s start来启动nginx。要重新加载配置,我要执行'sudo/usr/sbin/nginx-s reload',这在Windows上对我不起作用。我仍在试图弄清楚如何进行包含。