サーバーブロックでルートが指定されたnginx構成があります。このようなページ ( https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/ ) によると、場所/ブロックに同じルートを配置する必要もなく、それで十分なはずです。しかし、場所/ブロックにルート ディレクティブを配置しない限り、404 エラーが発生します。これが私のサーバーブロックです:
server {
listen 80;
server_name mysite.com
root /usr/local/nginx/sites/mysite;
index index.php index.html;
location / {
root /usr/local/nginx/sites/mysite;
index index.php index.html index.htm;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
error_page 500 502 503 504 /50x.html;
}
したがって、" root /usr/local/nginx/sites/mysite;
" が 内にある場合location /
、すべてが機能します。しかし、そうでない場合は、サーバー ブロック内の同じルート ディレクティブが無視されるだけです。ここで何が欠けていますか?