Seu try_files
termina com index.html
, que é anexado ao root
(e o /
no root
é ignorado). Adicione um /
a ele.
try_files $uri $uri/index.html /index.html;
Aqui está minha configuração do Nginx:
...
server {
listen 80;
server_name whatever;
root /var/www/;
location /api/1.0 {
...
'proxy_pass http://localhost:8000/;
}
location /api/2.0 {
...
proxy_pass http://localhost:8080/;
}
location / {
root /var/www/static/;
default_type text/html;
try_files $uri $uri/index.html index.html;
}
}
Se eu for agora para localhost
e anexar um nome aleatório que não corresponda a nada em meus arquivos estáticos, ou significar algo em qualquer um dos dois aplicativos (por exemplo, http://localhost/whatever
), recebo um erro estranho meu log:
2013/09/14 20:58:20 [error] 28731#0: *2 open() "/var/wwwindex.html" failed (2: No such file or directory), client: 127.0.0.1, server: ec2-54-234-175-21.compute-1.amazonaws.com, request: "GET /whatever HTTP/1.1", host: "localhost"
Estou pensando que isso deve apenas refletir minha falta de compreensão, porque eu realmente não tenho idéia do motivo pelo qual o nginx está tentando acessar "/var/wwwindex.html". Note que eu não quero que este pedido tenha sucesso, eu só quero que ele falhe de uma forma que eu entenda. O que exatamente está acontecendo? Pensamentos apreciados, obrigado antecipadamente!
Tags nginx