Iniciante Fundamentos

Servindo arquivos com root e index

Para servir um site simples de arquivos estáticos, você precisa de duas diretivas: root e index.

A diretiva root

A root define a pasta onde ficam os arquivos do site:

server {
    listen 80;
    server_name exemplo.com;
    root /var/www/exemplo;
}

Quando alguém pede /sobre.html, o Nginx procura por /var/www/exemplo/sobre.html.

A diretiva index

A index define qual arquivo entregar quando a URL aponta para uma pasta:

server {
    root /var/www/exemplo;
    index index.html index.htm;
}

Se o visitante acessar /, o Nginx tenta index.html; se não existir, tenta index.htm.

Juntando tudo

Um site estático completo costuma ser assim:

server {
    listen 80;
    server_name exemplo.com;
    root /var/www/exemplo;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

O try_files tenta o arquivo, depois a pasta e, se nada existir, retorna 404.

Resumo

root aponta a pasta dos arquivos e index define o arquivo padrão de cada diretório. Com try_files você trata caminhos inexistentes com elegância.