我是nginx的新手,我无法确定为什么我的nginx配置无法按预期工作。我想要做的就是使每个Web根(/)请求的index.php上的nginx优先级为index.html。
这是我的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/*;
}
我的错误在哪里?编写这个nginx配置的正确方法是什么?
答案 0 :(得分:6)
您应该将位置和服务器声明保存在虚拟主机文件(/etc/nginx/conf.d/*.conf;
和/etc/nginx/sites-enabled/*;
中,正如您可以从nginx conf中看到的那样)。 /etc/nginx/conf.d/*.conf;
中的文件通常符号链接到/etc/nginx/sites-enabled/*;
中的文件,以便“启用”
请在此处查看我的blog post,其设置与您的设置类似。
尝试在index index.html index.html index.php
块
location {}
文件指令
答案 1 :(得分:5)
如果您明确请求/index.html,是否提供服务?如果没有,您可能需要向root /path/to/root;
块添加明确的server {}
。还要验证index.html是否具有正确的权限。
这将有助于排除故障:如果找不到根index.html,它将强制404。如果发生这种情况,至少可以查看日志以查看它是否正在寻找:
location = / {
index index.html;
}
此外,请务必在更改配置时执行nginx -s reload
。