La directive d’index d’emplacement nginx ne fonctionne pas

Je suis nouveau à nginx et je ne peux pas déterminer pourquoi ma configuration nginx ne fonctionne pas comme prévu. Tout ce que je veux faire, c’est que nginx donne la priorité à index.html plutôt qu’à index.php pour chaque requête racine (/).

Ceci est ma configuration nginx:

user www-data; worker_processes 4; pid /var/run/nginx.pid; events { worker_connections 768; multi_accept on; } http { ## # Basic Settings ## server { location / { index index.html index.php; } location ~ \.php$ { fastcgi_pass localhost:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } sendfile on; tcp_nopush on; tcp_nodelay off; keepalive_timeout 15; keepalive_requests 100000; types_hash_max_size 2048; client_body_in_file_only clean; client_body_buffer_size 32K; client_max_body_size 300M; server_tokens off; # server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ----------------- cut --------------- ## # Virtual Host Configs ## include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; } 

Où est mon erreur? Quelle est la bonne façon d’écrire cette configuration nginx?

Convention:

Vous devez conserver les déclarations d’emplacement et de serveur dans les fichiers d’hôte virtuel ( /etc/nginx/conf.d/*.conf; et /etc/nginx/sites-enabled/*; comme vous pouvez le voir dans la configuration de nginx). Fichiers dans /etc/nginx/conf.d/*.conf; sont généralement liés aux fichiers de /etc/nginx/sites-enabled/*; afin de devenir “activé”

Quelques choses à essayer

Voir mon blog ici qui a une configuration similaire à la vôtre.

Essayez de déplacer votre index index.html index.html index.php directive directive en dehors d’un location {} bloc

Si vous demandez explicitement /index.html, est-il servi? Sinon, vous pouvez append une root /path/to/root; explicite root /path/to/root; sur votre server {} bloc. Vérifiez également que index.html dispose des permissions appropriées.

Cela aidera avec le dépannage: il forcera un 404 si le index.html racine est introuvable. Si cela se produit, vous pouvez au moins consulter les journaux pour voir s’ils regardaient:

 location = / { index index.html; } 

Assurez-vous également de nginx -s reload lors du changement de configuration.