以下是我的 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;
}
}
如果我现在转到localhost
,并附加一个与我的静态文件中的任何内容都不对应或在两个应用程序中都没有任何含义的随机名称(例如http://localhost/whatever
),我会在日志中收到一个奇怪的错误:
2013/09/14 20:58:20 [错误] 28731#0:*2 open()“/var/wwwindex.html”失败(2:没有此文件或目录),客户端:127.0.0.1,服务器:ec2-54-234-175-21.compute-1.amazonaws.com,请求:“GET /whatever HTTP/1.1”,主机:“localhost”
我认为这一定只是反映了我缺乏理解,因为我真的不知道为什么 nginx 试图访问“/var/wwwindex.html”。请注意,我不希望这个请求成功,我只希望它以我理解的方式失败。到底发生了什么?感谢您的想法,提前感谢!
答案1
您的try_files
以 结尾index.html
,它被附加到(并且的root
尾部被忽略)。向其添加。/
root
/
try_files $uri $uri/index.html /index.html;