nginx.conf
如下:
user www-data;
worker_processes 1;
error_log logs/error.log;
error_log logs/error.log notice;
error_log logs/error.log info;
events {
worker_connections 1024;
}
http {
server {
listen 8080;
server_name example.com;
root /tmp/test/example;
location = / {
index index.html;
}
location / {
root /tmp/test/mydomain;
}
}
}
errors.log
是:
2016/03/22 23:07:56 [错误] 17763#0:* 1目录索引" / tmp / test / example /"是禁止的,客户端:127.0.0.1,server:example.com,请求:" GET / HTTP / 1.1",主机:" example.com:8080"
但是当我评论root /tmp/test/example
行时,它运行正常。所以我想知道index
重定向是如何工作的?
答案 0 :(得分:0)
在我看来,index.html
目录中没有/tmp/test/example
个文件。
您的location = /
阻止测试是否存在文件(index.html
),如果不存在,则会生成403响应。
将URI重写为/index.html
后,它实际上由location /
块处理。
我怀疑删除第一个root
指令时它起作用的原因是因为默认(或全局)root
接管“欢迎使用nginx”index.html
文件的位置位于。因此,它通过存在测试,然后提供您的文件。
我应该补充一点,基于您的观察和我的实验,上述主要是猜测。