Comment configurer nginx pour lire nginx.conf dans le répertoire de travail actuel?

J’ai installé nginx sous Windows et mis un nginx.conf dans mon répertoire racine http, mais il semble que ce chemin ne soit pas inclus, je peux l’inclure en incluant c:/http_default/nginx.conf , mais je veux que nginx inclue automatiquement tout nginx.conf pour le répertoire de travail actuel. Exemple: pour http://mydomain.com/test/index.php , je souhaite que c:/http_default/test/nginx.conf soit inclus.

Votre meilleure option est d’avoir au préalable une structure de répertoire standardisée (par exemple, c: \ www \ example.com). Ensuite, dans chaque répertoire de site, vous avez un répertoire pour votre racine et pour les fichiers conf. Ensuite, vous utiliserez ceci dans votre section http {} principale de nginx.conf.

 include c:/www/*/conf/nginx.conf; 

Ensuite, nginx.conf de chaque site sera chargé lorsque vous démarrez ou lancez un rechargement sur nginx. Donc, si vous avez ces deux chemins pour un site, vous êtes défini.

 c:\www\example.com\conf\ c:\www\example.com\htdocs\ 

Les fichiers Web vont dans htdocs et nginx.conf vont dans conf. Aussi simple que cela.

Je n’ai jamais utilisé nginx sous Windows, alors je suppose que sa configuration utilise des barres obliques comme * nix.

Il y a un programme appelé incron, un système “inotify cron”. Il détecte les modifications de fichiers pour un très faible coût: inotify .

  • installer incron, par exemple apt-get install -y incron

  • éditer incrontab incrontab -e

  • add /var/www/site1/nginx.conf IN_MODIFY,IN_NO_LOOP /usr/local/sbin/nginx-reload.sh ajustez votre webroot, il est plus sûr de définir webroot sur sitename / server et de mettre ce nginx.conf dans le nom d’utilisateur dir

  • le script shell utilise flock pour attendre le rechargement précédent

    flock -x "/var/lock/nginx-reload" -c nginx-reload-worker.sh logger -t "nginx-reload[$$]" "Reloading OK"

  • le script de travail retarde chaque rechargement de 5 secondes

    sleep 5 service nginx reload || error 2 "nginx reload error"


Tout voir dans NGINX auto reload gist