Le nginx.conf
est comme suit:
user www-data; worker_processes 1; error_log logs/error.log; error_log logs/error.log notice; error_log logs/error.log info; events { worker_connections 1024; } http { server { listen 8080; server_name example.com; root /tmp/test/example; location = / { index index.html; } location / { root /tmp/test/mydomain; } } }
Le errors.log
est:
2016/03/22 23:07:56 [erreur] 17763 # 0: * 1 index de répertoire de “/ tmp / test / example /” est interdit, client: 127.0.0.1, serveur: example.com, demande: “GET / HTTP / 1.1 “, hôte:” example.com:8080 ”
Mais quand je commente la ligne root /tmp/test/example
, ça marche bien. Je veux donc savoir comment fonctionne la redirection d’ index
?
Il me semble que vous n’avez pas de fichier index.html
dans le /tmp/test/example
.
Votre location = /
teste la présence du fichier ( index.html
) et, s’il n’existe pas, génère une réponse 403.
Une fois l’URI réécrit dans /index.html
il est réellement traité par votre location /
bloc.
Je pense que la raison pour laquelle cela fonctionne lorsque vous supprimez la première directive root
est que la root
par défaut (ou globale) prend la place du fichier index.html
“Bienvenue dans nginx”. Donc, il passe le test d’existence, puis sert votre fichier.
Je devrais append que ce qui précède est essentiellement un jeu de conjectures basé sur vos observations et mes expériences.