
Aquí está mi configuración de Nginx, brevemente:
...
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;
}
}
Si ahora voy a localhost
y agrego un nombre aleatorio que no corresponde a nada en mis archivos estáticos, ni significa nada en ninguna de las dos aplicaciones (por ejemplo http://localhost/whatever
), aparece un error extraño en mi registro:
2013/09/14 20:58:20 [error] 28731#0: *2 open() "/var/wwwindex.html" falló (2: No existe tal archivo o directorio), cliente: 127.0.0.1, servidor: ec2 -54-234-175-21.compute-1.amazonaws.com, solicitud: "GET /lo que sea HTTP/1.1", host: "localhost"
Creo que esto debe reflejar mi falta de comprensión, porque realmente no tengo idea de por qué nginx intenta acceder a "/var/wwwindex.html". Tenga en cuenta que no quiero que esta solicitud se realice correctamente, solo quiero que falle de una manera que yo entienda. ¿Qué está pasando exactamente? Se agradecen los pensamientos, ¡gracias de antemano!
Respuesta1
Tu try_files
termina con index.html
, que se agrega al root
(y se ignora el final /
del root
). Agrégale un /
.
try_files $uri $uri/index.html /index.html;