如果我理解正确的话,定义的意义何在?location / { }
因为这样会匹配所有潜在的 URI,并且在与具有更具体 URI 的位置的较量中“失败”?我的理由是,您可以将所有默认值直接放入服务器块中,而不必定义location / { }
。
因此,如果我是正确的,那么这没有任何意义:
server {
root /www/html;
location / {
root /www/html;
}
}
附言:我对 nginx 还很陌生,所以如果我可以更好地措辞以使问题更有用/更容易发现,请随时告诉我。
答案1
你是对的,你举的具体例子毫无意义。但有很多 nginx 指令在服务器级别不起作用
例如:
server {
proxy_pass http://localhost:8080;
}
^ 这不起作用。v
这起作用。
server {
location / {
proxy_pass http://localhost:8080;
}
}
服务器级别指令是默认值。有些指令仅在服务器级别起作用,有些指令仅在位置级别起作用。
这是两个根本不同的事物,只是您举的例子具有相同的后果。