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?
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é”
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.