Implicit root location?

Francis Daly francis at
Wed Jul 31 11:54:16 UTC 2019

On Tue, Jul 30, 2019 at 04:20:41PM -0500, J. Lewis Muir wrote:

Hi there,

> I have a minimal nginx.conf with one server block that sets the root
> directory but has *no* location directives, yet for a request of "/", it
> serves "/index.html".  Why?  With no locations specified, I expected it
> to return 404 or similar for any request.

As you've seen: if there is not a best-match location{} for this request;
then nginx uses the server{}-level config. Without other configuration,
that will eventually default to serving from the filesystem with the
defined root directory.

If *that* directory or file is not there, you'll get a 404.

(And there is a compile-time root directory, if you do not set "root"

In the common case, you want a "location / {}" so that there will always
be a best-match location{}.

Perhaps this "no-location-matched" case could be documented more clearly?

Francis Daly        francis at

More information about the nginx mailing list